Phiên bản 64-bit của Boost dành cho Windows 64-bit


119

Có phiên bản của thư viện Boost 64-bit cho VS2008 không? Hay tôi phải tự biên dịch một cái? nếu, vậy, có ai có kinh nghiệm với nó?

Câu trả lời:


226

Như một câu trả lời ngắn gọn:

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

Như một câu trả lời dài hơn, đây là ghi chú xây dựng của tôi để có các thư viện tăng cường VS .NET 2008 32-bit và 64-bit trong cùng một hệ thống phân cấp (tôi nghi ngờ là một trường hợp sử dụng phổ biến):

  1. Xây dựng mã nhị phân win32

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. Tạo thư mục lib \ win32

  3. Di chuyển nội dung của stage \ lib sang lib \ win32
  4. Xóa thư mục bin.v2 và sân khấu
  5. Xây dựng các tệp nhị phân x64

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. Tạo thư mục lib \ x64

  7. Di chuyển nội dung của stage \ lib sang lib \ x64
  8. Xóa thư mục bin.v2 và sân khấu

25
Bạn cũng có thể chỉ định thư mục giai đoạn, điều này giúp loại bỏ nhu cầu sao chép các thư viện kết quả xung quanh: bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser

8
giai đoạn là gì?
Ramadheer Singh

16
Rất tiếc, bản dựng 64, address-model = 64 không hoạt động. Bạn cần có đường dẫn trỏ đến Visual Studio \ bin \ amd64 \ cl.exe. Nếu không, nó xây dựng phiên bản 32 bit. Để làm điều này, bạn có thể khởi động Microsoft SDK Command Prompt và sử dụng "setenv / Release / x64" để xác định lại tất cả các đường dẫn.
Budric

2
@Budric, bạn có chắc không? Nó dường như đã làm việc cho tôi và điều này nói rõ ràng là cung cấp một đường dẫn đến trình biên dịch 32 bit ngay cả khi xây dựng ở 64 bit.
Maciej Gryka

4
Nếu bạn cần xây dựng cả phiên bản 32 và 64 bit, bạn cũng có thể sử dụng tham số stagedir: "bjam --stagedir =. / Lib_64bit address-model = 64 toolset = msvc threading = multi" và "bjam --stagedir =. / lib công cụ = msvc luồng = đa"
Odin

63

Tôi đã có các tệp nhị phân được xây dựng trên trang web của mình: http://boost.teeks99.com

Chỉnh sửa 2013-05-13: Các bản dựng của tôi hiện có sẵn (bắt đầu từ 1.53) trực tiếp từ trang sourceforge .


5
Thật tuyệt khi bạn cung cấp cái này, vì BoostPRo (người cung cấp mã nhị phân cho thư viện Boost) không cung cấp phiên bản x64. Cảm ơn!
CharlesB

Bất kỳ cơ hội nào bạn có thể đăng mã nhị phân VS2015 (VC ++ 14)? Điều đó sẽ được đánh giá rất cao.
Russell Greene

1
msvc-14.0 nhị phân sẽ có trong bản phát hành 1.59 sẽ ra mắt sau vài tuần nữa.
thiếu niên 99

22

CẬP NHẬT (19.09.2017): đã thêm dòng tập lệnh cho VS2017. Xin lưu ý rằng Boost hỗ trợ trình biên dịch VS2017 từ một phiên bản nhất định ở trên. Tôi đã sử dụng phiên bản mới nhất (1.65.1).

Tôi đã sử dụng tập lệnh này để xây dựng tăng cường cho các nền tảng x64 và x86, lib và dll, gỡ lỗi và phát hành cho VS2017, VS2015 và 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

Bạn có thể tạo một .battệp và chạy nó để tạo các tệp nhị phân tăng cường của bạn.


12

Tại thời điểm này, các mã nhị phân 64 bit được cung cấp bởi teeks99 (xem câu trả lời khác) dường như là các mã nhị phân 64 bit miễn phí duy nhất xung quanh. Trong một thời gian, BoostPro cũng cung cấp các mã nhị phân 64-bit, nhưng kể từ 1.51, chúng dường như không hoạt động hoặc kinh doanh.

Vì vậy, chúng tôi quay lại với hai lựa chọn một lần nữa: nhị phân teeks99 hoặc xây dựng của riêng bạn.

Hầu hết thông tin tôi cần để tự xây dựng đều có ở đây: https://stackoverflow.com/a/2655683/613288

Điều duy nhất còn thiếu là làm thế nào để điều này hoạt động với phiên bản miễn phí của Visual Studio 2010 Express. Tôi đã tìm thấy phần còn thiếu ở một nơi khác và sau một số tùy chỉnh, công thức cuối cùng mà tôi sử dụng cho việc xây dựng mã nhị phân boost 1.49.0 của mình là:

Khởi động Visual C ++, và từ menu Công cụ, hãy bắt đầu Visual Studio Command Prompt.

Trong cửa sổ bảng điều khiển, hãy làm như sau:

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

và sau đó trong thư mục tăng cường:

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

Lệnh cuối cùng được tùy chỉnh cho những gì tôi cần (chỉ là một số thư viện được liên kết tĩnh).


Tôi đã tải xuống trình cài đặt x64 1_51 của họ, tuy nhiên, nó chứa tệp lưu trữ bị hỏng cho lib hệ thống và có vẻ như một số lib khác có x86 (tôi nhận được cảnh báo về trình liên kết). Sau khi chuyển sang libs của teeks99, mọi thứ đã trở nên OK.
Alex

4

Tôi đã tạo cho tôi một tập lệnh nhỏ biên dịch tất cả chúng cho VS2005 và 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\
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.