1. 程式人生 > >使用VS2015 編譯 64位的boost庫

使用VS2015 編譯 64位的boost庫

boost庫 win ddr without sta 每天 4.0 14. nat

別人寫的編譯參考:

目標:使用VS2015 編譯 64位的boost庫。

一直以來都是在Win32環境下Build和使用boost,但現在基本上每天都在64位Win7下工作,所以很有必要把這幾天的經驗總結下來。

1. 下載並解壓boost 1.61.0 壓縮包

2. 解壓並運行批處理文件bootstrap.bat,目錄下會生成兩個可執行文件

3. 和32位環境不同,x64環境下編譯得先從開始菜單啟動Visual Studio的VS2015 x64 Native Tools Command Prompt 進入命令提示符,而不是隨便打開任意一個命令行窗口就行。

4. 然後cd到boost根文件夾,運行bootstrap.bat生成x64版的b2.exe 和 bjam.exe (他們只是版本不同的產物,但是用法一致,bjam是之前版本的,b2 是最新的)

5. 然後運行命令:

b2 --build-type=complete toolset=msvc-14.0 threading=multi link=shared address-model=64

即可生成DLL版平臺庫,如果要編譯靜態庫版就把shared改為static。

  • 只生成一個庫的話加上例如--with-python得編譯選項,避免生成東西太多、時間太長。
  • 要有address-model=64屬性,如果沒有這個屬性的話,會默認生成32位的平臺庫,加入這個選項才能生成64位的DLL。
  • 如果要生成Boost.Python庫,需要先下載安裝x64版的Python安裝包,我用的版本是3.2.3。在使用這個庫編寫Python擴展DLL時,默認是使用動態庫版的Boost.Python,要使用靜態版的必須在C++項目中定義BOOST_PYTHON_STATIC_LIB宏,這樣就不用在使用或發布擴展時帶著boost_python-vc90-mt-1_50.dll一起了,當然擴展DLL的尺寸會大些,如果做實驗沒必要這樣,編譯又慢生成的文件也大。

我的過程如下:

1.下載1.63.0版本的boost庫,放置D:\boost_1_63_0

2.編譯64位的boost需要在VC 提供的命令提示符進行操作。

3.開始轉到boost根目錄,運行bootstrap.Bat生成X64版本的bjam.exe和b2

4.

B2是新版,然後運行命令:64位靜態庫

b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:\boost_1_63_0\lib64-msvc-14" address-model=64 link=static runtime-link=static threading=multi debug release

64位的動態庫

b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:\boost_1_63_0\lib64-msvc-14" address-model=64 link=static runtime-link=shared threading=multi debug release

我是用的是:

b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:\boost_1_63_0\lib64-msvc-14" address-model=64 link=shared threading=multi

b2 stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="d:\boost_1_63_0\lib64-msvc-14" address-model=64 link=static threading=multi

5.需要註意的是address-model=64屬性,如果沒有這個屬性的話,會默認生成32位的平臺庫,加入這個選項才能生成64位的DLL

要編譯很久

然後可以使用了。

6.使用方法:

設置下環境變量,頭文件路徑BOOST64_BASE_DIR , BOOST64_LIB_DIR.

2017/8/28

再次編譯系統,在visual studio 2010下編譯boost庫:

使用VS2010 64位工具,切換到boost目錄,鍵入命令:

b2 stage --toolset=msvc-10.0 --stagedir="d:\boost_1_63_0\lib64-msvc-10" address-model=64

選擇全編譯,知名庫的編譯路徑,編譯器工具,雖然時間長,不會有缺庫的提示。

使用VS2015 編譯 64位的boost庫