2011-09-22 7 views
13

मैं एमएसवीसी (वीएस 2010) के साथ विंडोज 7 में बूस्ट लाइब्रेरी बनाने की कोशिश कर रहा हूं।बूस्ट बिल्डिंग बूस्ट - रनटाइम-लिंक और लिंक विकल्पों के बीच अंतर

मैं रनटाइम-लिंक विकल्पों में आया हूं और bjam कमांड लाइन विकल्पों में लिंक करें। मैं जानना चाहता हूं कि उनका उपयोग कैसे किया जाता है और उनके बीच सटीक अंतर क्या है।

मैं इस कमांड लाइन

bjam --with-regex संस्करण = रिहाई --build-विकल्प = पूरा

यह इन फ़ाइलों का उत्पादन का उपयोग कर बूस्ट Regex पुस्तकालय का निर्माण किया है:

1) boost_regex-vc100-MT-1_47.dll (आयात पुस्तकालय: boost_regex-vc100-MT-1_47.lib)

2) libboost_regex-vc100-MT-1_47.lib

0,123,

3) libboost_regex-vc100-MT-स-1_47.lib

4) libboost_regex-vc100-स-1_47.lib

2 और 3 उदारीकरण फ़ाइलों के बीच क्या अंतर है? उनमें से दोनों स्थिर libs हैं। मैं बूस्ट दस्तावेज़ से गुजर चुका हूं लेकिन उसमें ज्यादा स्पष्टीकरण नहीं मिला।

TIA

उत्तर

15

runtime-link कैसे अपने संकलक के क्रम जुड़ा हुआ है को दर्शाता है। यही है, यह वीसी के Multithreaded बनाम Multithreaded DLL विकल्प से मेल खाता है। रनटाइम का अर्थ है आपके कंपाइलर के साथ उपलब्ध मानक पुस्तकालयों का उपयोग करने के लिए आवश्यक घटक।

आपने शायद किसी बिंदु पर गतिशील लिंक फ़ाइलों को देखा है: MSVCRTXX.DLL (सी रनटाइम) और MSVCPXX.DLL (सी ++ मानक पुस्तकालय), MFCXX.DLL (एमएफसी कोर कक्षाएं)। स्थिर समकक्ष LIBC और LICBP हैं (लाइब्रेरी तालिका के लिए here देखें)

बूस्ट बनाने के दौरान उपयोग किए जाने वाले रनटाइम-लिंक विकल्प को आपके क्लाइंट कोड के लिए उपयोग करते समय विकल्प से मेल खाना चाहिए। अन्यथा आपको लिंक समय पर या अपने प्रोग्राम को चलाने पर मेल नहीं किए गए रनटाइम के कारण त्रुटियां मिलेंगी।

गतिशील लिंक रनटाइम का उपयोग करने के लिए अपने प्रोग्राम का निर्माण करते समय, आपको अपने आवेदन को तैनात करते समय VC redistributable शामिल करने की आवश्यकता है।

link यह दर्शाता है कि कैसे आपकी बिल्डिंग बूस्ट लाइब्रेरी को एक स्थिर या गतिशील लिंक लाइब्रेरी के रूप में जोड़ा जाएगा।