BOOST安裝或編譯

Boost庫是爲C++語言標準庫提供擴展的一些C++程序庫的總稱。
Boost庫由Boost社區組織開發、維護。其目的是爲C++程序員提供免費、同行審查的、可移植的程序庫。Boost庫可以與C++標準庫完美共同工作,並且爲其提供擴展功能。
Boost庫使用Boost License來授權使用。
大部分boost庫功能的使用只需包括相應頭文件即可,少數(如正則表達式庫,文件系統庫等)需要鏈接庫。裏面有許多具有工業強度的庫,如graph庫。
  • 已編譯Boost安裝

根據VS版本和操作系統位數下載合適的版本安裝
Name Modified Size Downloads / Week Status
Parent folder
SHA256SUMS.asc 2016-09-27 2.4 kB 3 i
SHA256SUMS 2016-09-27 1.5 kB 4 i
DEPENDENCY_VERSIONS.txt 2016-09-27 397 Bytes 86 i
boost_1_62_0-msvc-9.0-64.exe 2016-09-27 260.5 MB 175 i
boost_1_62_0-msvc-9.0-32.exe 2016-09-27 233.1 MB 106 i
boost_1_62_0-msvc-8.0-64.exe 2016-09-27 258.6 MB 12 i
boost_1_62_0-msvc-8.0-32.exe 2016-09-27 229.5 MB 13 i
boost_1_62_0-msvc-14.0-64.exe 2016-09-27 277.0 MB 1,303 i
boost_1_62_0-msvc-14.0-32.exe 2016-09-27 255.4 MB 626 i
boost_1_62_0-msvc-12.0-32.exe 2016-09-27 244.8 MB 301 i
boost_1_62_0-msvc-12.0-64.exe 2016-09-27 267.3 MB 447 i
boost_1_62_0-msvc-11.0-64.exe 2016-09-27 273.0 MB 77 i
boost_1_62_0-msvc-10.0-64.exe 2016-09-27 257.4 MB 117 i
boost_1_62_0-msvc-11.0-32.exe 2016-09-27 250.1 MB 28 i
boost_1_62_0-msvc-10.0-32.exe 2016-09-27 235.1 MB 68 i
boost_1_62_0-bin-msvc-all-32-64.7z 2016-09-26 1.5 GB 161 i
boost_1_62_0-32bitlog.txt 2016-09-26 30.0 kB 22 i
boost_1_62_0-64bitlog.txt 2016-09-26 23.6 kB 16  
Totals: 18 Items   4.6 GB 3,565  
安裝後設置系統變量BoostDir和BoostLibs

在VS工程中創建兩個宏 $(BoostDir), $(BoostLibs),就可以不用使用絕對路徑了。

  • BOOST源碼編譯

從開始--Microsoft Visual Studio 2013找到 Visual Studio Tools:


打開文件夾,選擇VS2013 x86 Native Tools Command
雙擊,打開命令窗口

切換到boost_1_62_0目錄

首先需要運行bootstrap.bat來生成boost庫的編譯引擎:b2.exe,bjam.exe(很重要)。
運行C:\boost_1_62_0\bootstrap.bat

編譯,可以簡單的使用b2 install,也可以指定存放目錄。
// 如果要獲取動態庫
bjam install stage --toolset=msvc-12.0 --stagedir="C:\boost_1_62_0\lib64-msvc-12.0" link=shared runtime-link=shared threading=multi debug release  
// 如果是要獲取靜態庫:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\boost_1_62_0\lib64-msvc-12.0" link=static runtime-link=static threading=multi debug release  

注意:
  1. 修改--toolset=msvc-12.0,將12.0修改成對應的vs版本號,12.0是VS2013的版本號。
  2. 目標地址也要修改成你所需的。
  3. 不要漏了install,它會幫你把頭文件集合到一個文件夾中。      編譯過程有一個複製過程,編譯需要的時間比較長,本次編譯過程中,會在C盤根目錄下生成一個boost文件夾,然後包含include和lib文件夾,這就是我們將要使用的頭文件和庫文件。

  • 編譯boost.Python庫生成動態連接庫
bjam stage address-model=64 architecture=x86--toolset=msvc-12.0 --with-python --stagedir="C:\boost_1_62_0\lib64-msvc-12.0" link=shared runtime-link=shared threading=multi debug release

出現:python error LNK2001
解決辦法:設置Python路徑和版本
set PYTHON_ROOT=c:\Python27set PYTHON_VERSION=2.7
成功


  • bjam程序的輸入參數
(1)stage/install:
stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。
(2)toolset:
指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)、msvc-12.0(VS2013等。
(3)without/with:
選擇不編譯/編譯哪些庫。根據各人需要進行選擇,默認是全部編譯。
如果選擇編譯python的話,是需要python語言支持。
(4)stagedir/prefix:
stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。
(5)build-dir:
編譯生成的中間文件的路徑。
(6)link:
生成動態鏈接庫/靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因爲最終發佈程序帶着boost的dll感覺會比較累贅。
(7)runtime-link:
動態/靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式。
(8)threading:
單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那麼還需要編譯單線程庫,可以使用single方式。
(9)debug/release:
編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章