c++ - खिड़कियों में बढ़ावा देने के एक उपसंच का निर्माण




windows boost (2)

मैं इसे बढ़ावा देने के एक सबसेट को सेटअप करने की कोशिश कर रहा हूं और इसे ठीक से bjam का उपयोग करके संकलित किया है, हालांकि मुझे नतीजा नहीं मिल रहा है। मैं बूस्ट 1.37.0 का उपयोग कर खिड़कियों पर काम कर रहा हूं।

मान लें कि मैं पुस्तकालयों smart_ptr और फाइल सिस्टम को बनाया / स्थापित करना चाहता हूं मैं जानबूझकर एक हेडर केवल पुस्तकालय और एक लाइब्रेरी को संकलित करने के लिए एक पुस्तकालय चुना है। मैं चाहता हूं कि उन्हें एक निर्देशिका संरचना में बनाया जाना चाहिए जो मुझे मिलेगा अगर मैं पूरी तरह से स्थापना के साथ bjam (यानी किसी भी --with-libraryX को निर्दिष्ट नहीं) के साथ बनाया है, लेकिन बिना सभी पुस्तकालयों में मुझे कोई दिलचस्पी नहीं है ।

मेरा पहला तरीका था - with-files-system -with-smart_ptr का उपयोग करने के लिए bjam, हालांकि ऐसा लगता है जैसे यह smart_ptr (मैं सफलता के बिना smartptr और smart-ptr की कोशिश की) की पहचान नहीं की थी मुझे लगता है इसका कारण यह है कि केवल एक शीर्षलेख ही लाइब्रेरी है

जब मैंने इसे हटा दिया और केवल - साथ-फाइलसिस्टम था, यह सभी पुस्तकालयों हेडर फाइलों को स्थापित पथ में कॉपी करने के लिए प्रतीत होता है और केवल फाइल सिस्टम के लिए पुस्तकालयों का निर्माण करता है। लाइब्रेरी बिल्डिंग वर्चिंग I के लिए आशा थी, लेकिन मुझे पुस्तकालयों के लिए बहुत सी हेडर फाइल मिली है जो मुझे मेरी बूस्ट डायरेक्टरी में स्थापित करने में दिलचस्पी नहीं है।

मेरा दूसरा दृष्टिकोण प्रासंगिक परियोजनाओं की प्रतिलिपि बनाने के लिए बीसीपी का उपयोग करना था इसने इस मायने में काम किया कि मुझे केवल उन प्रोजेक्ट्स को मिला जिनके बारे मैं (और उनकी निर्भरता) परवाह थी हालांकि उन्होंने कॉपी किए गए पुस्तकालयों के निर्माण के लिए कोई मेक फाइल नहीं दी। इसका मतलब है कि मुझे सभी लाइब्रेरीज़ के लिए प्रोजेक्ट फाइलें सेटअप करने की आवश्यकता होगी जो केवल हेडर नहीं हैं और स्वयं मैन्युअल रूप से उनका निर्माण करते हैं।

तो मेरा सवाल मूल रूप से है, वहाँ चुनिंदा निर्माण को बढ़ावा देने का एक तरीका है कि केवल पुस्तकालयों में दिलचस्पी रखने वाले मैसेज के लिए हेडर्स की प्रतिलिपि बनाता है और केवल गैर हेडर केवल पुस्तकालयों में दिलचस्पी रखने वाली लाइब्रेरी फ़ाइलों का निर्माण करता है (और उन्हें बढ़ावा पुस्तकालय हैं पाठ्यक्रम पर निर्भर)?

इसके लिए संभवत: मैनुअल / स्क्रिप्टिंग आधारित समाधान के टन हैं, लेकिन अगर मुझे नए पुस्तकालयों को जोड़ने या नए बढ़ावा देने वाले संस्करण को अपग्रेड करना बहुत ही सरल होगा, तो मुझे सिर्फ इतना ही ज्यादा काम करना होगा कि मैं बस का उपयोग करके बस कुछ और पाएं।

संपादित करें: पहली दृष्टिकोण के लिए पूरी कमांड लाइन जोड़ा गया है:

bjam install --prefix=c:\temp\boostsmall 
   --build-dir=C:\temp\boostsmalltemp --layout=system 
   --with-filesystem variant=debug link=static threading=multi
   runtime-link=static

स्कोप-एपीटीआर से स्मार्ट_प्रॉप बदल गया


उसे हल कर लिया।

बीसीपी समाधान ने परियोजनाओं के लिए फाइल बनाई थी, फिर भी मुझे टूल्स डायरेक्टरी की प्रतिलिपि बनाने की ज़रूरत थी और बढ़ावा निर्देशिका की जड़ की जगह के साथ मैं चीजों को चलाने के लिए अपने सारे लिबियों की नकल की।


बढ़िया सवाल! यह एक मुद्दा है जिसे मैंने हाल ही में पता लगाया है, मुझे लगता है।

मेरे पास पहले से ही पूर्ण बूस्ट पुस्तकालयों को स्थापित किया गया था, जिसमें अलग संकलन की आवश्यकता होती है।

मैं निम्नलिखित चरणों का उपयोग करने पर काम कर रहा था एक विशेष अनुप्रयोग के लिए बूस्ट पुस्तकालयों (regex) का एक सबसेट बनाने में कामयाब रहे:

  1. पहले सुनिश्चित करें कि बीसीपी निष्पादन योग्य पहले स्थान पर स्थापित है। अपने बूस्ट रूट फ़ोल्डर में, उपकरण / बीसीपी फ़ोल्डर पर नेविगेट करें और यहां bjam.exe चलाएं। मेरे लिए यह [बूस्ट पथ] \ bin.v2 \ tools \ bcp \ msvc-10.0 \ release \ link-static निर्देशिका में बीसीपी निष्पादन योग्य बनाया गया है:

  2. फिर उस फ़ोल्डर को बनाएं जहां आप बूस्ट सबसेट को रहने के लिए चाहते हैं। यह पहले से ही एक विज़ुअल स्टूडियो प्रोजेक्ट के लिए एक फ़ोल्डर हो सकता है जिस पर आप काम कर रहे हैं।

  3. आपके द्वारा बनाया गया बीसीपी एक्स्ट्यूबेल चलाएं, सुनिश्चित करें कि आप जो लाइब्रेरी शामिल करना चाहते हैं, साथ ही बढ़ावा रूट निर्देशिका और गंतव्य फ़ोल्डर का स्थान शामिल करें। ध्यान दें कि आपके गंतव्य फ़ोल्डर में आवश्यक बूस्ट घटकों (जैसे कि regex के लिए) को शामिल किया गया है।

    bcp.exe regex --boost = "C: \ Program Files \ boost_1_55_0 \ boost_1_55_0" C: \ Projects \ RegexProject \ BoostLite

  4. आपके विज़ुअल स्टूडियो प्रोजेक्ट में बनाया गया था जो 'बूस्ट लाइट' फ़ोल्डर को इंगित करने के लिए अतिरिक्त शामिल निर्देशिकाएँ और लाइब्रेरी सेट करें

  5. एक अंतिम चीज - जो मुझे लगता है कि पहले से वर्णित है - मुझे अपने नियमित बूस्ट फ़ोल्डर सेटअप में जाने और आवश्यक चरण / लिब फ़ोल्डर की प्रतिलिपि बनाने की जरूरत है जिसमें सभी लिब फ़ाइलों को सबसेट संस्करण के लिए आवश्यक है और उन्हें यहां प्रतिलिपि बनाते हैं, बस कुछ ही regex-related मेरे मामले में लिब फ़ाइलें

मैंने पाया कि यह मेरे लिए काम किया है अन्य व्यक्तियों के अनुभवों से कोई भी प्रतिक्रिया की सराहना की जाएगी

एक ही चीज़ का वर्णन करने वाला ब्लॉग पोस्ट यहां पाया जा सकता है।





bjam