Boost เวอร์ชัน 64 บิตสำหรับ Windows 64 บิต


119

มีไลบรารี Boost 64 บิตสำหรับ VS2008 หรือไม่? หรือว่าต้องรวบรวมเอง? ถ้าอย่างนั้นใครมีประสบการณ์กับมันบ้าง?

คำตอบ:


226

เป็นคำตอบสั้น ๆ :

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

ตามคำตอบที่ยาวกว่านี่คือบันทึกการสร้างของฉันสำหรับการมีไลบรารีบูสต์ VS .NET 2008 32 บิตและ 64 บิตในลำดับชั้นเดียวกัน (ซึ่งฉันสงสัยว่าเป็นกรณีการใช้งานทั่วไป):

  1. สร้างไบนารี win32

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. สร้างไดเร็กทอรี lib \ win32

  3. ย้ายเนื้อหาของ stage \ lib ไปที่ lib \ win32
  4. ลบไดเร็กทอรี bin.v2 และสเตจ
  5. สร้างไบนารี x64

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. สร้างไดเร็กทอรี lib \ x64

  7. ย้ายเนื้อหาของ stage \ lib ไปที่ lib \ x64
  8. ลบไดเร็กทอรี bin.v2 และสเตจ

25
คุณสามารถระบุไดเร็กทอรีสเตจได้เช่นกันซึ่งไม่จำเป็นต้องคัดลอกไลบรารีผลลัพธ์รอบ ๆ : bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser

8
เวทีคืออะไร?
Ramadheer Singh

16
น่าเสียดายที่สร้าง 64 ที่อยู่-model = 64 ไม่ทำงาน คุณต้องมีเส้นทางของคุณชี้ไปที่ Visual Studio \ bin \ amd64 \ cl.exe มิฉะนั้นจะสร้างเวอร์ชัน 32 บิต ในการดำเนินการนี้คุณสามารถเริ่มพร้อมท์คำสั่ง Microsoft SDK และใช้ "setenv / Release / x64" ซึ่งกำหนดเส้นทางทั้งหมดใหม่
Budric

2
@ บุดริกแน่ใจเหรอ? ดูเหมือนว่าจะได้ผลสำหรับฉันและสิ่งนี้ระบุอย่างชัดเจนเพื่อให้เส้นทางไปยังคอมไพเลอร์ 32 บิตแม้ว่าจะสร้างใน 64 บิตก็ตาม
Maciej Gryka

4
หากคุณต้องการสร้างทั้งเวอร์ชัน 32 และ 64 บิตคุณสามารถใช้ stagedir parametter: "bjam --stagedir =. / lib_64bit address-model = 64 toolset = msvc threading = multi" และ "bjam --stagedir = / lib toolset = msvc threading = multi "
Odin

63

ฉันมีไบนารีที่สร้างขึ้นบนไซต์ของฉัน: http://boost.teeks99.com

แก้ไข 2013/05/13: My builds เป็นตอนนี้ใช้ได้ (ราคาเริ่มต้นที่ 1.53) ได้โดยตรงจากหน้า SourceForge


5
เยี่ยมมากที่คุณให้สิ่งนี้เนื่องจาก BoostPRo (ผู้ให้บริการไบนารีสำหรับไลบรารี Boost) ไม่ได้ให้เวอร์ชัน x64 ขอบคุณ!
CharlesB

คุณสามารถโพสต์ไบนารี VS2015 (VC ++ 14) ได้หรือไม่? ที่จะได้รับการชื่นชมอย่างมาก
Russell Greene

1
msvc-14.0 ไบนารีจะอยู่ในรุ่น 1.59 ซึ่งจะออกในอีกไม่กี่สัปดาห์
teeks99

22

UPDATE (19.09.2017): เพิ่มบรรทัดสคริปต์สำหรับ VS2017 โปรดทราบว่า Boost รองรับคอมไพเลอร์ VS2017 จากเวอร์ชันที่ระบุข้างต้น ฉันใช้เวอร์ชันล่าสุด (1.65.1)

ฉันใช้สคริปต์นี้เพื่อสร้างการเพิ่มสำหรับแพลตฟอร์ม x64 และ x86, lib และ dll, ดีบักและรีลีสสำหรับ VS2017, VS2015 และ VS2013:

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

ในขณะนี้ไบนารี 64 บิตที่จัดทำโดย teeks99 (ดูคำตอบอื่น ๆ ) ดูเหมือนจะเป็นไบนารี 64 บิตที่ว่างเท่านั้น ในขณะที่ BoostPro ยังให้ไบนารี 64 บิต แต่เมื่อถึง 1.51 พวกเขาดูเหมือนจะไม่อยู่หรือทำธุรกิจ

ดังนั้นเราจึงกลับไปที่สองตัวเลือกอีกครั้ง: ไบนารี teeks99 หรือสร้างของคุณเอง

ข้อมูลส่วนใหญ่ที่ฉันต้องการในการสร้างของตัวเองอยู่ที่นี่: https://stackoverflow.com/a/2655683/613288

สิ่งเดียวที่ขาดหายไปคือการทำให้สิ่งนี้ทำงานกับ Visual Studio 2010 Express เวอร์ชันฟรี ฉันพบว่าส่วนหนึ่งหายไปที่อื่นและหลังจากปรับแต่งบางอย่างแล้วสูตรสุดท้ายที่ฉันใช้สำหรับการสร้างไบนารีบูสต์ 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 ของพวกเขาอย่างไรก็ตามมันมีไฟล์เก็บถาวรที่เสียหายสำหรับ lib ระบบและดูเหมือนว่า lib อื่น ๆ มี x86 (ฉันได้รับคำเตือนตัวเชื่อมโยง) หลังจากเปลี่ยนไปใช้ libs ของ teeks99 ทุกอย่างก็โอเค
Alex

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\
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.