दृश्य स्टूडियो 2010 में बूस्ट का उपयोग कैसे करें


जवाबों:


512

हालांकि नैट का उत्तर पहले से ही बहुत अच्छा है, मैं अनुरोध के अनुसार विजुअल स्टूडियो 2010 के लिए विशेष रूप से इस पर विस्तार करने जा रहा हूं, और विभिन्न वैकल्पिक घटकों में संकलन की जानकारी शामिल करता हूं, जिसमें बाहरी पुस्तकालयों की आवश्यकता होती है।

यदि आप केवल पुस्तकालयों के हेडर का उपयोग कर रहे हैं, तो आपको बस इतना करना है कि बढ़ावा डाउनलोड को अनारकली करें और पर्यावरण चर को सेट करें। नीचे दिए गए निर्देश केवल Visual Studio के लिए पर्यावरण चर सेट करते हैं, और पूरे सिस्टम में नहीं। नोट आपको केवल एक बार करना है।

  1. अपनी पसंद (जैसे C:\boost_1_47_0) की निर्देशिका में बढ़ावा देने के नवीनतम संस्करण (लेखन के रूप में 1.47.0) को अनारक्षित करें ।
  2. Visual Studio में एक नया खाली प्रोजेक्ट बनाएँ।
  3. संपत्ति प्रबंधक खोलें और अपनी पसंद के मंच के लिए कॉन्फ़िगरेशन में से एक का विस्तार करें।
  4. संपादित करें के लिए संपत्ति पृष्ठ खोलने के लिए Microsoft.Cpp.<Platform>.userचयन करें और दायाँ क्लिक करें , और चुनें Properties
  5. VC++ Directoriesबाईं ओर का चयन करें ।
  6. Include Directoriesअपने बूस्ट सोर्स फाइल्स में शामिल करने के लिए सेक्शन को एडिट करें ।
  7. यदि आवश्यक हो तो अपनी पसंद के विभिन्न प्लेटफॉर्म के लिए चरण 3 - 6 दोहराएं।

यदि आप बढ़ावा देने वाले हिस्से का उपयोग करना चाहते हैं, जिसमें भवन की आवश्यकता होती है, लेकिन बाहरी निर्भरता की आवश्यकता वाली कोई भी विशेषता नहीं है, तो इसका निर्माण करना काफी सरल है।

  1. अपनी पसंद (जैसे C:\boost_1_47_0) की निर्देशिका में बढ़ावा देने के नवीनतम संस्करण (लेखन के रूप में 1.47.0) को अनारक्षित करें ।
  2. अपनी पसंद के प्लेटफ़ॉर्म के लिए विज़ुअल स्टूडियो कमांड प्रॉम्प्ट शुरू करें और जहां बढ़ावा हो, वहां नेविगेट करें।
  3. भागो: bootstrap.batb2.exe (पहले नामित bjam) बनाने के लिए।
  4. भागो b2:

    • Win32 b2 --toolset=msvc-10.0 --build-type=complete stage :;
    • 64: b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage

टहलने जाएं / मूवी देखें या 2 /…।

  1. पर्यावरण चर सेट करने के लिए ऊपर दिए गए निर्देश के सेट से चरण 2 - 6 पर जाएं।
  2. Library Directoriesअपने बूस्ट लाइब्रेरी आउटपुट के पथ को शामिल करने के लिए अनुभाग संपादित करें । (ऊपर दिए गए उदाहरण और निर्देशों के लिए डिफ़ॉल्ट होगा C:\boost_1_47_0\stage\lib। यदि आप x86 & x64 को साइड में रखना चाहते हैं, तो पहले नाम बदलें और स्थानांतरित करें (जैसे <BOOST_PATH>\lib\x86& <BOOST_PATH>\lib\x64)।
  3. यदि आवश्यक हो तो अपनी पसंद के विभिन्न प्लेटफॉर्म के लिए चरण 2 - 6 को दोहराएं।

यदि आप वैकल्पिक घटक चाहते हैं, तो आपके पास करने के लिए अधिक काम है। य़े हैं:

  • Boost.IOStreams Bzip2 फ़िल्टर
  • Boost.IOStreams Zlib फिल्टर
  • Boost.MPI
  • Boost.Python
  • Boost.Regex ICU सपोर्ट

Boost.IOStreams Bzip2 फ़िल्टर:

  1. अपनी पसंद की निर्देशिका में उदाहरण के लिए bzip2 लाइब्रेरी के नवीनतम संस्करण (लेखन के रूप में 1.0.6) स्रोत फ़ाइलों को अनारक्षित करें C:\bzip2-1.0.6
  2. बूस्ट बनाने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट का पालन करें, लेकिन -sBZIP2_SOURCE="C:\bzip2-1.0.6"चरण 5 में b2 चलाते समय विकल्प में जोड़ें ।

Boost.IOStreams Zlib फिल्टर

  1. Zlib लाइब्रेरी के नवीनतम संस्करण (लेखन के रूप में 1.2.5) स्रोत फ़ाइलों को अपनी पसंद की एक निर्देशिका में उदासीन करें (जैसे C:\zlib-1.2.5)।
  2. बूस्ट बनाने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट का पालन करें, लेकिन -sZLIB_SOURCE="C:\zlib-1.2.5"चरण 5 में b2 चलाते समय विकल्प में जोड़ें ।

Boost.MPI

  1. Microsoft कंप्यूट क्लस्टर पैक जैसे MPI वितरण स्थापित करें।
  2. बढ़ावा देने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट से चरण 1 - 3 का पालन करें।
  3. फ़ाइल project-config.jamको उस निर्देशिका में संपादित करें <BOOST_PATH>जिसके परिणामस्वरूप बूटस्ट्रैप चल रहा है। पढ़ने वाली पंक्ति में जोड़ें using mpi ;(';' से पहले के स्थान पर ध्यान दें)।
  4. बढ़ावा देने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट से बाकी चरणों का पालन करें। यदि MPI इंस्टॉलेशन का ऑटो-डिटेक्शन विफल हो जाता है, तो आपको सही जगह पर MPI देखने के लिए उपयुक्त बिल्ड फ़ाइल को देखने और संशोधित करने की आवश्यकता होगी।

Boost.Python

  1. ActiveState के ActivePython जैसे Python वितरण को स्थापित करें। सुनिश्चित करें कि अजगर स्थापना आपके पेट में है।
  2. लाइब्रेरी के 32-बिट संस्करण को पूरी तरह से बनाने के लिए 32-बिट्स पायथन की आवश्यकता होती है, और इसी तरह 64-बिट्स संस्करण के लिए। यदि आपके पास ऐसे कारण के लिए कई संस्करण स्थापित हैं, तो आपको b2 को यह बताना होगा कि विशिष्ट संस्करण कहां और कब उपयोग करना है। ऐसा करने का एक तरीका project-config.jamउस निर्देशिका में फ़ाइल को संपादित करना होगा <BOOST_PATH>जो बूटस्ट्रैप चलाने से हुई थी। अपने पायथन इंस्टॉलेशन पथ और संस्करणों के लिए उपयुक्त दो पंक्तियों को एडजस्ट करें (''! 'से पहले स्पेस पर ध्यान दें)।

    using python : 2.6 : C:\\Python\\Python26\\python ;

    using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;

    ध्यान दें कि इस तरह के स्पष्ट पायथन विनिर्देश वर्तमान में MPI निर्माण को विफल करने का कारण बनते हैं। यदि आप MPI का निर्माण कर रहे हैं तो सब कुछ बनाने के लिए आपको विनिर्देशन के साथ और बिना कुछ अलग इमारत बनाने की आवश्यकता होगी।

  3. बढ़ावा देने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट का पालन करें।

Boost.Regex ICU सपोर्ट

  1. अपनी पसंद (जैसे C:\icu4c-4_8) की निर्देशिका में ICU4C लाइब्रेरी के नवीनतम संस्करण (लेखन के 4.8) स्रोत फ़ाइल को अनारक्षित करें ।
  2. में Visual Studio समाधान खोलें <ICU_PATH>\source\allinone
  3. अपनी पसंद के प्लेटफ़ॉर्म के लिए सभी डिबग और रिलीज़ कॉन्फ़िगरेशन के लिए सभी बनाएँ। Visual Studio 2010 के साथ ICU4C के हालिया रिलीज़ को बनाने में समस्या हो सकती है जब दोनों डिबग और रिलीज़ बिल्ड के लिए आउटपुट एक ही डायरेक्टरी (जो डिफ़ॉल्ट व्यवहार है) में हैं। संभावित वर्कअराउंड एक बिल्ड ऑल (डीबग बिल्ड का कहना है) करने के लिए है और फिर 2 वें कॉन्फ़िगरेशन (जैसे रिलीज रिलीज) में सभी का पुनर्निर्माण करें।
  4. यदि x64 के लिए निर्माण हो रहा है, तो आपको x64 OS चलाने की आवश्यकता होगी क्योंकि इसमें पोस्ट बिल्ड स्टेप्स हैं, जिसमें 64 बिट्स के कुछ अनुप्रयोग चल रहे हैं जो इसे बना रहे हैं।
  5. वैकल्पिक रूप से स्रोत निर्देशिका को निकालते समय करें।
  6. बूस्ट बनाने के लिए ऊपर दिए गए निर्देशों के दूसरे सेट का पालन करें, लेकिन -sICU_PATH="C:\icu4c-4_8"चरण 5 में b2 चलाते समय विकल्प में जोड़ें ।

@ सोरीन: आपको कभी इसे बदलने की आवश्यकता क्यों होगी?
जालफ j

6
यह ध्यान दिया जाना चाहिए कि आपको संपत्ति शीट को देखने के लिए उपकरण> सेटिंग्स> विशेषज्ञ मोड का चयन करना होगा। अंत में यह पता लगाने के लिए मुझे कुछ गोग्लिंग ले गया ...
जैक द ह्यूमन

@ केटीसी: यह वास्तव में "विशेषज्ञ सेटिंग्स" है, जो टूल> सेटिंग्स मेनू से उपलब्ध है। मैं VSC ++ 2010 एक्सप्रेस संस्करण चला रहा हूं और "विशेषज्ञ सेटिंग्स" को सक्रिय किए बिना आप संपत्ति पत्रक नहीं देख सकते।
जैक द ह्यूमन

11
यदि आप x64 और win32 दोनों पक्ष साथ चाहते हैं, तो संबंधित बिल्ड्स में "--stagedir = lib / win32" और "--stagedir = lib / x64" जोड़ें।
एम। टिबबिट्स

3
विज़ुअल स्टूडियो 2010 के लिए एक वीडियो ट्यूटोरियल कैसे बूस्ट का निर्माण और कॉन्फ़िगर किया जाए, इसके लिए मदद मिल सकती है: youtube.com/watch?v=5AmwIwedTCM
Christophe

158

जबकि बूस्ट वेब साइट पर दिए गए निर्देश सहायक हैं, यहाँ एक संघनित संस्करण है जो x64 पुस्तकालयों का निर्माण भी करता है।

  • आपको केवल ऐसा करने की आवश्यकता है यदि आप निर्देश पृष्ठ के खंड 3 में उल्लिखित पुस्तकालयों में से किसी एक का उपयोग कर रहे हैं । (उदाहरण के लिए, Boost.Filesystem का उपयोग करने के लिए संकलन की आवश्यकता है।) यदि आप उनमें से किसी का उपयोग नहीं कर रहे हैं, तो बस अनज़िप करें और जाएं।

32-बिट लाइब्रेरी बनाएँ

इसके तहत बूस्ट हेडर फाइल्स C:\Boost\include\boost-(version), और 32-बिट लाइब्रेरियों को इनस्टॉल करता है C:\Boost\lib\i386। ध्यान दें कि पुस्तकालयों के लिए डिफ़ॉल्ट स्थान है, C:\Boost\libलेकिन i386अगर आप कई आर्किटेक्चर के लिए योजना बनाते हैं, तो आप उन्हें एक निर्देशिका के तहत रखना चाहेंगे ।

  1. एक नई निर्देशिका में बूस्ट करें।
  2. 32-बिट MSVC कमांड प्रॉम्प्ट प्रारंभ करें और उस निर्देशिका में बदलें जहाँ Boost अनज़िप किया गया था।
  3. Daud: bootstrap
  4. Daud: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\i386 install

    • Visual Studio 2012 के लिए, का उपयोग करें toolset=msvc-11.0
    • दृश्य स्टूडियो 2010 के लिए, का उपयोग करें toolset=msvc-10.0
    • Visual Studio 2017 के लिए, का उपयोग करें toolset=msvc-14.1
  5. जोड़ना C:\Boost\include\boost-(version)अपने शामिल पथ में ।

  6. जोड़ना C:\Boost\lib\i386अपने कार्य पथ में ।

64-बिट पुस्तकालयों का निर्माण

इसके तहत बूस्ट हेडर फाइल्स C:\Boost\include\boost-(version), और 64-बिट लाइब्रेरीज़ के तहत इंस्टाल होता है C:\Boost\lib\x64। ध्यान दें कि पुस्तकालयों के लिए डिफ़ॉल्ट स्थान है, C:\Boost\libलेकिन x64अगर आप कई आर्किटेक्चर के लिए योजना बनाते हैं, तो आप उन्हें एक निर्देशिका के तहत रखना चाहेंगे ।

  1. एक नई निर्देशिका में बूस्ट करें।
  2. 64-बिट MSVC कमांड प्रॉम्प्ट प्रारंभ करें और उस निर्देशिका में बदलें जहां बूस्ट अनज़िप किया गया था।
  3. Daud: bootstrap
  4. Daud: b2 toolset=msvc-12.0 --build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86 address-model=64 install
    • Visual Studio 2012 के लिए, का उपयोग करें toolset=msvc-11.0
    • दृश्य स्टूडियो 2010 के लिए, का उपयोग करें toolset=msvc-10.0
  5. जोड़ना C:\Boost\include\boost-(version)अपने शामिल पथ में ।
  6. C:\Boost\lib\x64अपने कार्य पथ में जोड़ें ।

24
यदि आप उन्हें स्वयं बनाना नहीं चाहते हैं, तो आप sourceforge से पूर्व-निर्मित बायनेरिज़ स्थापित कर सकते हैं: sourceforge.net/projects/boost/files/boost-binaries बढ़ावा देने के प्रत्येक संस्करण के लिए, प्रत्येक दृश्य स्टूडियो संस्करण के लिए इंस्टॉलर हैं ( दोनों 32 और 64 बिट)।
teeks99

64 बिट बिल्ड करते समय आर्किटेक्चर = x64 के बजाय आर्किटेक्चर = x86 का उपयोग करने का क्या कारण है? संपादित करें: बस कठिन तरीके से पता चला: पी आप 64 पर स्विच नहीं कर सकते ...
kayleeFrye_onDeck

हे, @ teeks99 मैं आपके दिए गए लिंक पर गया, लेकिन v1.4.7 संस्करण के लिए मुझे बहुत सारी फाइलें मिलीं, जिन्हें मुझे किसी भी तरह से उपयोग करना चाहिए? बेहतर नहीं है अगर वहाँ एक एकल फ़ाइल (पुस्तकालय / dll) है जो सभी बूस्ट के कार्यों के उपयोग के लिए उपयुक्त है?
गमरू

2
Sourceforge.net/projects/boost/files/boost-binaries/… आज़माएं और अगर आपको 32-बिट या 64-बिट की आवश्यकता है, तो इस आधार पर आपको 1.47.0 के लिए एक इंस्टॉलर खोजने में सक्षम होना चाहिए। वहाँ अंदर आपको बहुत सारे डीएलएल मिलेंगे, बस यही काम करता है। हालाँकि, जब तक आप अपने विजुअल स्टूडियो प्रोजेक्ट को सही डायरेक्टरी की ओर इशारा करते हैं, तब तक यह मायने नहीं रखता कि इसमें कितने हैं क्योंकि यह अपने आप सही (ओं) को चुन लेगा, जिनकी इसे जरूरत है।
teeks99

20

आप एक तर्क के रूप में -j% NUMBER_OF_PROCESSORS% को भी आज़मा सकते हैं, यह आपके सभी कोर का उपयोग करेगा। मेरे क्वाड कोर पर चीजों को सुपर फास्ट बनाता है।


3
इस बार एक लाख .... यह वही है जो मैं अंततः VS2015 के लिए एक संयुक्त प्रयास के रूप में गया: b2 -j% NUMBER_OF_PROCESSORS% टूलसेट = msvc-14.0 --build-type = complete --libdir = C: \ Boost \ lib \ x64 आर्किटेक्चर = x86 पता-मॉडल = 64 स्थापित
kayleeFrye_onDeck


14

मैं निम्नलिखित चाल की सिफारिश कर सकता हूं: एक विशेष boost.propsफ़ाइल बनाएं

  1. संपत्ति प्रबंधक खोलें
  2. अपने प्रोजेक्ट नोड पर राइट क्लिक करें, और 'नई प्रोजेक्ट प्रॉपर्टी शीट जोड़ें' चुनें।
  3. एक स्थान का चयन करें और अपनी संपत्ति शीट नाम दें
  4. खोज पथ में अतिरिक्त शामिल करें और लिब फ़ोल्डर को संशोधित करें।

इस प्रक्रिया का मूल्य है कि बढ़ावा केवल उन परियोजनाओं में शामिल है जहां आप इसे स्पष्ट रूप से शामिल करना चाहते हैं। जब आपके पास एक नया प्रोजेक्ट होता है जो बूस्ट का उपयोग करता है, तो:

  1. संपत्ति प्रबंधक खोलें।
  2. प्रोजेक्ट नोड पर राइट क्लिक करें, और 'मौजूदा संपत्ति शीट जोड़ें' चुनें।
  3. बूस्ट प्रॉपर्टी शीट का चयन करें।

EDIT (@ jim-fred से संपादित करें):

परिणामी boost.propsफ़ाइल कुछ इस तरह दिखती है ...

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BOOST_DIR>D:\boost_1_53_0\</BOOST_DIR>
  </PropertyGroup>
  <PropertyGroup>
    <IncludePath>$(BOOST_DIR);$(IncludePath)</IncludePath>
    <LibraryPath>$(BOOST_DIR)stage\lib\;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
</Project>

इसमें बूस्ट डायरेक्टरी (इस मामले में, D: \ boost_1_53_0) और दो अन्य मापदंडों के लिए एक उपयोगकर्ता मैक्रो होता है: इनपाथ और लाइब्रेरीपाथ। एक कथन #include <boost/thread.hpp>उपयुक्त निर्देशिका में थ्रेड को ढूंढेगा (इस मामले में, D: \ boost_1_53_0 \ boost \ thread.hpp)। 'मंच \ lib \' निर्देशिका स्थापित निर्देशिका के आधार पर बदल सकती है।

यह boost.props फ़ाइल D:\boost_1_53_0\निर्देशिका में स्थित हो सकती है ।


13

बूस्ट के किन हिस्सों की आपको ज़रूरत है? बहुत सारा सामान TR1 का हिस्सा है जिसे विज़ुअल स्टूडियो के साथ भेज दिया गया है, इसलिए आप उदाहरण के लिए कह सकते हैं:

#include <tr1/memory>

using std::tr1::shared_ptr;

जेम्स के अनुसार, यह भी काम करना चाहिए (C ++ 0x में):

#include <memory>

using std::shared_ptr;

5
VS2010 में, TR1 लाइब्रेरी जो C ++ 0x का हिस्सा बन रही है, सभी को stdनाम स्थान में स्थानांतरित कर दिया गया है , क्योंकि वे C ++ 0x मानक में हैं। (मुझे लगता है कि वे शायद std::tr1नाम स्थान में भी हैं, पीछे की संगतता के लिए)।
जेम्स मैकनेलिस

6

यह धागा कुछ समय के लिए रहा है, और मुझे लगा कि मैं आपके विशिष्ट हार्डवेयर पर जितनी जल्दी हो सके बूस्ट बनाने के लिए HOW के बारे में कुछ जोड़ूंगा।

यदि आपके पास क्रमशः 4 या 6-कोर उपयोग -j5 या -j7 है। जब तक आप वास्तव में दोहरे कोर नहीं हैं निश्चित रूप से न तो मानक -j2 और न ही -j2।

मैं अपने मुख्य स्टेशन पर 3930K (6-कोर) वाले स्टॉक के साथ एक सैंडी ब्रिज एक्सट्रीम चला रहा हूं, लेकिन पुराने बैकअप बॉक्स पर 2600k (4-कोर) है, और प्रवृत्ति है कि मुझे N + के साथ सबसे अच्छा बूस्ट संकलन समय मिल रहा है 1 उन प्रक्रियाओं का निर्माण करता है जहां एन भौतिक कोर की संख्या है। N + 2 घटते हुए रिटर्न के बिंदु पर पहुंच जाता है और समय बढ़ जाता है।

नोट: हाइपरथ्रेडिंग सक्षम है, 32GB RAM DDR3, सैमसंग 840 EVO SSD।

-j7 पर 6-कोर (2 मिनट और 51 सेकंड) (Win7 अल्टीमेट x64) (विजुअल स्टूडियो 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j7 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 2
Seconds           : 51
Milliseconds      : 128
Ticks             : 1711281830
TotalDays         : 0.0019806502662037
TotalHours        : 0.0475356063888889
TotalMinutes      : 2.85213638333333
TotalSeconds      : 171.128183
TotalMilliseconds : 171128.183

-6 पर 6-कोर (3 मिनट और 2 सेकंड) (Win7 अल्टीमेट x64) (विजुअल स्टूडियो 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j6 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 2
Milliseconds      : 809
Ticks             : 1828093904
TotalDays         : 0.00211584942592593
TotalHours        : 0.0507803862222222
TotalMinutes      : 3.04682317333333
TotalSeconds      : 182.8093904
TotalMilliseconds : 182809.3904

-j8 6-कोर (3 मिनट और 17 सेकंड) पर (Win7 अल्टीमेट x64) (विजुअल स्टूडियो 2013)

PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j8 --build-type=complete msvc stage }

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 17
Milliseconds      : 652
Ticks             : 1976523915
TotalDays         : 0.00228764342013889
TotalHours        : 0.0549034420833333
TotalMinutes      : 3.294206525
TotalSeconds      : 197.6523915
TotalMilliseconds : 197652.3915

-j7 का निर्माण 6-कोर पर होता है

कॉन्फ़िग

Building the Boost C++ Libraries.


Performing configuration checks

    - 32-bit                   : yes (cached)
    - arm                      : no  (cached)
    - mips1                    : no  (cached)
    - power                    : no  (cached)
    - sparc                    : no  (cached)
    - x86                      : yes (cached)
    - has_icu builds           : no  (cached)
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - zlib                     : no  (cached)
    - iconv (libc)             : no  (cached)
    - iconv (separate)         : no  (cached)
    - icu                      : no  (cached)
    - icu (lib64)              : no  (cached)
    - message-compiler         : yes (cached)
    - compiler-supports-ssse3  : yes (cached)
    - compiler-supports-avx2   : yes (cached)
    - gcc visibility           : no  (cached)
    - long double support      : yes (cached)
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
    - zlib                     : no  (cached)

मैं ध्यान देता हूं कि 64-बिट बिल्ड थोड़ा अधिक समय लेता है, मुझे उन लोगों के लिए तुलना करने और अपडेट करने की आवश्यकता है।


5

थोड़ा ध्यान दें: यदि आप संकलन-समय को कम करना चाहते हैं, तो आप ध्वज को जोड़ सकते हैं

-j2

एक ही समय में दो समानांतर निर्माण चलाने के लिए। यह एक फिल्म देखने के लिए इसे कम कर सकता है;)


2
यह बताते हुए कि कैसे उपयोग करने -j2से आपके उत्तर का मूल्य बढ़ेगा।
ST3

5

बूस्ट डाउनलोड करें: http://www.boost.org/users/download/ जैसे svn द्वारा

  • विंडोज -> कछुआ (सबसे सरल तरीका)

उसके बाद: cmd -> बूस्ट डायरेक्टरी ("D: \ boostTrunk" पर जाएं - जहां आप चेकआउट या डाउनलोड और पैकेज निकालें): कमांड: बूटस्ट्रैप

हमने bjam

उसके बाद: विजुअल स्टूडियो 2010 खोलें -> खाली प्रोजेक्ट बनाएं -> प्रोजेक्ट प्रॉपर्टीज पर जाएं -> सेट:

परियोजना गुण VS 2010

इस कोड को पेस्ट करें और जांचें कि क्या यह काम कर रहा है?

#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/regex.hpp>

using namespace std;

struct Hello 
{
    Hello(){ 
        cout << "Hello constructor" << endl;
    }

    ~Hello(){
        cout << "Hello destructor" << endl;
        cin.get();
    }
};


int main(int argc, char**argv)
{
    //Boost regex, compiled library
    boost::regex regex("^(Hello|Bye) Boost$");
    boost::cmatch helloMatches;
    boost::regex_search("Hello Boost", helloMatches, regex);
    cout << "The word between () is: " << helloMatches[1] << endl;

    //Boost shared pointer, header only library
    boost::shared_ptr<Hello> sharedHello(new Hello);

    return 0;
}

संसाधन: https://www.youtube.com/watch?v=5AmwIwedTCM


4

यहाँ मैं बूस्ट का उपयोग करने में सक्षम था:

  1. बूस्ट पुस्तकालयों के ज़िप संस्करण को डाउनलोड करें और निकालें।
  2. Bootstrap.bat फ़ाइल चलाएँ और फिर bjam.exe चलाएँ।
  3. लगभग 30 मिनट या तो प्रतीक्षा करें।
  4. Visual Studio में एक नया प्रोजेक्ट बनाएँ।
  5. पर जाएं परियोजना -> गुण -> लिंकर -> जनरल -> अतिरिक्त लाइब्रेरी निर्देशिकाएँ और जोड़ने बढ़ावा / मंच / lib यह करने के लिए निर्देशिका।
  6. पर जाएं परियोजना -> गुण -> C / C ++ -> जनरल -> अतिरिक्त निर्देशिकाएँ शामिल करें और जोड़ने बढ़ावा इसे करने के लिए निर्देशिका।

आप किसी भी त्रुटि के बिना अपनी परियोजना का निर्माण करने में सक्षम होंगे!


3

यहां स्थित विंडोज इंस्टॉलर ने मेरे लिए पूरी तरह से काम किया। मैंने निम्नलिखित कदम उठाए:

  1. समाप्त होने तक इंस्टॉलेशन विज़ार्ड का पालन करें।
  2. दृश्य स्टूडियो चलाएं।
  3. एक नया C ++ प्रोजेक्ट बनाएं
  4. ओपन प्रोजेक्ट गुण (समाधान खोजकर्ता में प्रोजेक्ट का नाम राइट-क्लिक करके पाया जा सकता है)
  5. "C / C ++> General> अतिरिक्त शामिल निर्देशिकाएँ" के तहत रूट डायरेक्टरी को बढ़ावा देने वाले मार्ग को जोड़ें। मेरे संस्करण के लिए डिफ़ॉल्ट C: \ local \ boost_1_63_0 था। "बूस्ट" के बाद की संख्या बढ़ावा देने का संस्करण है।
  6. प्रोजेक्ट गुणों में, "लिंकर> अतिरिक्त लाइब्रेरी निर्देशिकाएँ" के तहत लाइब्रेरी फ़ाइलों के लिए निर्देशिका जोड़ें। मेरे संस्करण के लिए डिफ़ॉल्ट C: \ local \ boost_1_63_0 \ lib64-msvc-14.0 था। "Lib" के बाद का नंबर बिल्ड टारगेट (विज़ुअल स्टूडियो में 32 बिट या 64 बिट) से संबंधित है और "msvc" के बाद का नंबर विज़ुअल स्टूडियो के संस्करण से संबंधित है (14.0 विज़ुअल स्टूडियो 2015 से संबंधित है, लेकिन मैं हूँ 2017 विज़ुअल स्टूडियो के साथ इसका उपयोग करते हुए)।

सौभाग्य!


2

KTC के बहुत जानकारीपूर्ण मुख्य उत्तर के लिए एक छोटा सा जोड़:

यदि आप मुक्त विज़ुअल स्टूडियो c ++ 2010 एक्सप्रेस का उपयोग कर रहे हैं, और 64-बिट बायनेरिज़ को संकलित करने के लिए एक प्राप्त करने में कामयाब रहे, और अब बूस्ट लिबरीज़ के 64-बिट संस्करण का उपयोग करने के लिए उपयोग करना चाहते हैं, तो आप 32- के साथ समाप्त हो सकते हैं बिट्स लाइब्रेरी (आपका माइलेज अलग-अलग हो सकता है, लेकिन मेरी मशीन पर यह सबसे दुखद मामला है)।

मैं इसे निम्नलिखित का उपयोग करके ठीक कर सकता हूं: जैसा कि ऊपर वर्णित चरणों को इनबिल्ट करें

  1. 32-बिट MSVC कमांड प्रॉम्प्ट प्रारंभ करें और उस निर्देशिका में बदलें जहाँ Boost अनज़िप किया गया था।
  2. रन: बूटस्ट्रैप

मैंने पर्यावरण को सेट करने के लिए 'सेटेनव' पर कॉल डाला। रिलीज़ बिल्ड के लिए, उपरोक्त चरण बन जाते हैं:

  1. 32-बिट MSVC कमांड प्रॉम्प्ट प्रारंभ करें और उस निर्देशिका में बदलें जहाँ Boost अनज़िप किया गया था।
  2. रन: "C: \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ setenv.cmd" / रिलीज़ / x64
  3. रन: बूटस्ट्रैप

मुझे यह जानकारी यहाँ मिली: http://boost.2283326.n4.nabble.com/64-bit-with-VS-Express-again-td3044258.html


क्या आप जानते हैं कि क्या यह VS2015 के कम्युनिटी एडिशन पर लागू होता है? मैं "पता-मॉडल = 64" की आपूर्ति करने के बावजूद 32 बिट के बायनेरिज़ के साथ समाप्त हो रहा हूं
paxos1977

@ paxos1977 क्षमा करें, मुझे नहीं पता - मैंने खुद VS2015 के लिए यह कोशिश नहीं की है।
इकोटैक्स डेस

यह निश्चित रूप से डेस्कटॉप संस्करण के लिए वीएस 2015 एक्सप्रेस पर लागू होता है, बस इसे खुद अनुभव किया। सेटेनव का विकल्प "vcvarsall x86_amd64" को लागू करना है
introiboad

1

विज़ुअल स्टूडियो में आपको आरंभ करने के लिए एक न्यूनतम उदाहरण:

1. यहाँ से डाउनलोड और अनज़िप बूस्ट।

2. एक दृश्य स्टूडियो खाली परियोजना बनाएँ, एक उदाहरण बढ़ावा पुस्तकालय है कि अलग संकलन की आवश्यकता नहीं है का उपयोग कर:

#include <iostream>
#include <boost/format.hpp>

using namespace std;  
using namespace boost;  

int main()  
{  
    unsigned int arr[5] = { 0x05, 0x04, 0xAA, 0x0F, 0x0D };  

    cout << format("%02X-%02X-%02X-%02X-%02X")  
            % arr[0]  
            % arr[1]  
            % arr[2]  
            % arr[3]  
            % arr[4]  
         << endl;  
}  

3. अपने दृश्य स्टूडियो परियोजना गुणों में अतिरिक्त शामिल निर्देशिकाएँ सेट करें:

परियोजना के गुण

एक बहुत ही सरल उदाहरण के लिए:

विजुअल स्टूडियो में बूस्ट लाइब्रेरी कैसे स्थापित करें

यदि आप संपूर्ण बूस्ट लाइब्रेरी का उपयोग नहीं करना चाहते हैं, तो बस एक सबसेट:

विंडोज में बूस्ट लाइब्रेरी के सबसेट का उपयोग करना

यदि आप विशेष रूप से उन पुस्तकालयों के बारे में जानना चाहते हैं जिन्हें संकलन की आवश्यकता है:

विंडोज में बूस्ट संकलित पुस्तकालयों का उपयोग कैसे करें


0

इसके अलावा, कुछ ऐसा है जो मुझे बहुत उपयोगी लगता है। अपने बढ़ावा देने के रास्तों के लिए पर्यावरण चर का उपयोग करें। (खिड़कियों में पर्यावरण चर कैसे सेट करें, 7,8,10 के लिए नीचे से लिंक करें) BOOST_ROOT चर अब सामान्य स्थान लगता है और रूट पथ पर सेट होता है जहां आप बढ़ावा देते हैं।

फिर गुण में, c ++, सामान्य, अतिरिक्त शामिल निर्देशिकाएँ का उपयोग करें $(BOOST_ROOT)। यदि आप बूस्ट लाइब्रेरी के नए संस्करण में जाते हैं तो यदि आप इस नए संस्करण को इंगित करने के लिए अपने पर्यावरण चर को अपडेट कर सकते हैं। अपनी परियोजनाओं के अधिक के रूप में, आप सभी के लिए 'अतिरिक्त शामिल निर्देशिकाएँ' को अद्यतन करने के लिए नहीं होगा बढ़ावा देने का उपयोग करें।

आप एक BOOST_LIB वैरिएबल भी बना सकते हैं और इसे इंगित कर सकते हैं कि जहां लिबास का मंचन किया गया है। इसी तरह लिंकर के लिए-> अतिरिक्त पुस्तकालय निर्देशिकाएँ, आपको परियोजनाओं को अपडेट नहीं करना होगा। मेरे पास कुछ पुराने सामान vs10 के साथ और नए सामान vs14 के साथ बनाए गए हैं ताकि दोनों बूस्ट के फ्लेवर एक ही फ़ोल्डर में बने। इसलिए अगर मैं एक प्रोजेक्ट को vs10 से vs14 में ले जाऊं तो मुझे बूस्ट पाथ नहीं बदलना पड़ेगा।

नोट: यदि आप एक पर्यावरण चर को बदलते हैं तो यह अचानक खुले वीएस परियोजना में काम नहीं करेगा। वीएस स्टार्टअप पर चर लोड करता है। तो आपको वीएस को बंद करना होगा और इसे फिर से खोलना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.