c++ - स्थैतिक लिंकिंग के लिए बूस्ट बिल्डिंग(मिनजीडब्लू)




boost build (3)

मैं bjam का उपयोग कर MinGW के लिए बूस्ट (मैं सिस्टम और फ़ाइल सिस्टम का उपयोग कर रहा हूं) का निर्माण कर रहा हूं:

bjam --toolset=gcc stage

और यह ठीक बनाता है, लेकिन मैं इसे स्थिर रूप से लिंक करने में सक्षम होना चाहता हूं (मुझे अंतिम उत्पाद के लिए एक फ़ाइल होना है) इसलिए मैंने कोशिश की:

bjam --link=static --toolset=gcc stage

लेकिन मुझे एक ही आउटपुट मिलता है। कोई विचार?

एक पंक्ति में दूसरे प्रश्न को संपादित करें मैंने पोस्टिंग के बाद क्षणों का उत्तर दिया है: पी अनुमान है कि मैं इसे दूसरों के लिए यहां छोड़ दूंगा।

bjam --build-type=complete --toolset=gcc stage

निश्चित रूप से गतिशील और स्थैतिक दोनों का निर्माण करेगा।


बस ध्यान दें कि नए बूस्ट (फरवरी 2011) के साथ आपको अब भी बीजेएम बनाने की जरूरत है .. किसी कारण से वर्तमान डाउनलोड करने योग्य बीजेएम साफ-साफ काम नहीं करता है।

तो पहले:

cd ...\boost_1_45_0\tools\build\v2\engine\src

build.bat mingw

आपको पथ में bjam जोड़ने की आवश्यकता होगी (नियंत्रण कक्ष से, केवल cmd प्रॉम्प्ट पर नहीं)। फिर

cd ...\boost_1_45_0\

bjam --build-type=complete --toolset=gcc stage

मेरा सेटअप विस्टा है, 1.45 बूस्ट, मिनजीडब्लू 4.5, और cmd.exe से msys नहीं है।

http://code-slim-jim.blogspot.com/2011/02/boost-in-vista-using-mingw-and-cmdexe.html


मुझे लगता है कि लिंक बीजेएम के विकल्प के विपरीत एक संपत्ति है। इसका मतलब है कि इससे पहले नहीं होना चाहिए।

यह केवल स्थिर पुस्तकालयों के निर्माण के लिए मेरी कमांड लाइन है (दृश्य सी ++ हालांकि):

bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static

मैपिंग कि आपके मूल निर्माण कमांड में मैं कहूंगा कि इसे ऐसा कुछ दिखाना चाहिए:

bjam --toolset=gcc link=static stage

या शायद:

bjam stage --toolset=gcc link=static

दौड़ने का प्रयास करें

bjam --help

bjam के लिए गुणों और विकल्पों पर अधिक जानकारी के लिए।


मैंने इसे स्वयं को मिनीजीडब्लू में नहीं बनाया है, लेकिन मेरा मानना ​​है कि आपका पहला निर्माण गतिशील और स्थैतिक पुस्तकालयों और दूसरे स्थिर स्थिर दोनों को आउटपुट करेगा, इसलिए यदि आपने निर्माण के बीच निर्माण निर्देशिका को साफ़ नहीं किया है तो यह शायद वही दिखाई देगा।

जब आप लिखते हैं "मेरे पास एक फ़ाइल है ..." क्या आपका मतलब है कि आपको एक ही लाइब्रेरी की आवश्यकता है जिसमें सभी बूस्ट लाइब्रेरी हैं? यदि ऐसा है, तो मुझे संदेह है कि आपको उन्हें एक साथ 'ar' करना पड़ सकता है।





bjam