64-बिट विंडोज के लिए 64-बिट संस्करण बूस्ट


119

क्या VS2008 के लिए 64-बिट बूस्ट लाइब्रेरी का एक संस्करण है? या मुझे खुद एक संकलन करना है? यदि हां, तो क्या किसी को इसके साथ अनुभव है?

जवाबों:


226

संक्षिप्त उत्तर के रूप में:

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete

एक लंबे उत्तर के रूप में, यहाँ वी.एस. .NET 2008 32-बिट और 64-बिट बूस्ट लाइब्रेरी में समान पदानुक्रम (जो मुझे एक सामान्य उपयोग के मामले में संदेह है) के लिए मेरे बिल्ड नोट्स हैं:

  1. Win32 बायनेरिज़ का निर्माण करें

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. निर्देशिका lib \ win32 बनाएँ

  3. चरण \ lib की सामग्री को lib \ win32 में ले जाएं
  4. निर्देशिका Bin.v2 और चरण निकालें
  5. X64 बायनेरिज़ का निर्माण करें

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. निर्देशिका lib \ x64 बनाएँ

  7. चरण \ lib की सामग्री को lib \ x64 में ले जाएं
  8. निर्देशिका Bin.v2 और चरण निकालें

25
आप चरण निर्देशिका को भी निर्दिष्ट कर सकते हैं, जो परिणामी लाइब्रेरी को चारों ओर से कॉपी करने की आवश्यकता को दूर करता है: bjam --toolset = msvc-9.0 पता-मॉडल = 64 --build-type = complete --stagedir = lib \ x64 चरण
hkaiser

8
क्या है चरण ?
रामाधीर सिंह

16
दुर्भाग्य से 64 का निर्माण करने के लिए, पता-मॉडल = 64 काम नहीं करता है। आपको अपना रास्ता Visual Studio \ bin \ amd64 \ cl.exe की ओर इंगित करने की आवश्यकता है। अन्यथा यह 32 बिट संस्करण बनाता है। ऐसा करने के लिए आप Microsoft SDK कमांड प्रॉम्प्ट शुरू कर सकते हैं और "setenv / Release / x64" का उपयोग कर सकते हैं, जो सभी रास्तों को फिर से परिभाषित करता है।
बुड्रिक

2
@Budric, क्या आपको यकीन है? ऐसा लगता है कि मेरे लिए काम किया गया है और यह स्पष्ट रूप से 64 बिट में निर्माण करते हुए भी 32 बिट संकलक को एक रास्ता प्रदान करता है।
मैकीज ग्राइका

4
यदि आपको 32 और 64 बिट संस्करण दोनों बनाने की आवश्यकता है, तो मंचित पैरामीटर का उपयोग करना भी संभव है: "bjam --stagedir =। / lib_64bit पता-मॉडल = 64 टूलसेट = msvc थ्रेडिंग = मल्टी" और "bjam --stagedir =। / lib टूलसेट = msvc थ्रेडिंग = मल्टी "
Odin

63

मुझे अपनी साइट पर निर्मित बायनेरिज़ मिल गए हैं: http://boost.teeks99.com

संपादित करें 2013-05-13: मेरे बिल्ड अब उपलब्ध हैं (1.53 से शुरू) सीधे स्रोत पृष्ठ से


5
महान है कि आप इसे प्रदान करते हैं, क्योंकि बूस्टप्रो (जो बूस्ट लाइब्रेरी के लिए बायनेरिज़ प्रदान करता है) x64 संस्करण नहीं देता है। धन्यवाद!
चार्ल्सब सेप

कोई भी मौका जब आप वीएस 2017 (वीसी ++ 14) बायनेरिज़ पोस्ट कर सकते हैं? यह बहुत सराहना की जाएगी।
रसेल ग्रीन

1
msvc-14.0 बायनेरिज़ कुछ हफ़्ते में 1.59 रिलीज में होंगे।
Teeks99

22

UPDATE (19.09.2017): VS2017 के लिए स्क्रिप्ट लाइनों को जोड़ा गया। कृपया ध्यान रखें कि बूस्ट ऊपर दिए गए एक निश्चित संस्करण से VS2017 कंपाइलर का समर्थन करता है। मैंने नवीनतम संस्करण (1.65.1) का उपयोग किया।

मैंने x64 और x86 प्लेटफ़ॉर्म के लिए बिल्डिंग बूस्ट, लिब और डीएल, डीबग और वीएस २०१5, वीएस २०१५ और वीएस २०१ के लिए रिलीज़ के लिए इस स्क्रिप्ट का उपयोग किया:

md stage\VS2017\x64
md stage\VS2015\x64
md stage\VS2013\x64    

b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release  

b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release


md stage\VS2017\win32
md stage\VS2015\win32
md stage\VS2013\win32

b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release

pause

आप एक .batफ़ाइल बना सकते हैं और इसे अपने बढ़ावा देने वाले बायनेरिज़ के निर्माण के लिए चला सकते हैं ।


12

इस समय, teeks99 (अन्य जवाब देखें) द्वारा प्रदान की जाने वाली 64-बिट बायनेरिज़ केवल 64-बिट्स बायनेरिज़ के आसपास दिखाई देती हैं। थोड़ी देर के लिए, बूस्टप्रो ने 64-बिट बायनेरिज़ भी प्रदान किए, लेकिन 1.51 के रूप में वे बाहर या व्यवसाय के लिए दिखाई देते हैं।

इसलिए, हम फिर से दो विकल्पों पर वापस आ गए हैं: teeks99 बायनेरिज़, या अपने खुद के निर्माण।

अधिकांश जानकारी जो मुझे स्वयं बनाने की आवश्यकता थी, वह थी: https://stackoverflow.com/a/2655683/613288

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

Visual C ++ प्रारंभ करें, और उपकरण मेनू से Visual Studio कमांड प्रॉम्प्ट प्रारंभ करें।

कंसोल विंडो में, निम्न कार्य करें:

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd"  /Release  /x64

और फिर बढ़ावा निर्देशिका में:

bootstrap.bat
b2  -a  -sBZIP2_SOURCE="C:\bzip2-1.0.6"   -sZLIB_SOURCE="C:\zlib-1.2.5"   --toolset=msvc-10.0  architecture=x86  address-model=64  link=static  --with-date_time  --with-filesystem  --with-serialization  --with-test  --with-thread  --with-system  --with-regex  --with-iostreams  stage

अंतिम कमांड को अनुकूलित किया गया है कि मुझे क्या जरूरत है (बस कुछ सांख्यिकीय रूप से जुड़े पुस्तकालयों के लिए)।


मैंने उनका x64 1_51 इंस्टॉलर डाउनलोड किया, हालांकि, इसमें सिस्टम लिब के लिए क्षतिग्रस्त संग्रह है और ऐसा प्रतीत होता है कि कुछ अन्य लिबास x86 हैं (मुझे लिंकर चेतावनी मिलती है)। Teeks99 के काम पर स्विच करने के बाद सब कुछ ठीक हो गया।
एलेक्स

4

मैंने मुझे एक छोटी स्क्रिप्ट दी, जो उन सभी को VS2005 और VS2008 के लिए संकलित करती है:

md stage\lib\win32
md stage\lib\x64

REM Visual Studio 2005
bjam --toolset=msvc-8.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-8.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\

REM Visual Studio 2008
bjam --toolset=msvc-9.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.