1、下載源碼。首先得明白,boost大多數庫都只有頭文件,鏈接時不需Lib文件;以下庫需要單獨編譯成庫:
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.MPI
Boost.ProgramOptions
Boost.Python
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Wave
下面幾種是可選的:
Boost.DateTime
Boost.Graph
Boost.Math
Boost.Random
Boost.Test
2、打開VS2012命令行窗口,進入源碼目錄,首先執行bootstrap.bat
3、用bjam或b2編譯。我采用的命令是:
b2 --toolset=msvc-11.0 --build-type=complete --build-dir="d:\result" stage
關於一些選項的解釋:
stage/install:stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。
toolset:指定編譯器,可選的如borland、gcc、msvc-11.0(VS2012)等。
without/with:選擇不編譯/編譯哪些庫。
stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。
build-dir:編譯生成的中間文件的路徑,編譯完成後可將這個目錄全部刪除。
link:生成動態鏈接庫/靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因為最終發布程序帶著boost的dll感覺會比較累贅。
runtime-link:動態/靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式,各人可以根據自己的需要選擇編譯。一般link只選static的話,只需要編譯2種組合即可,即link=static runtime-link=shared和link=static runtime-link=static。
threading:單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那麼還需要編譯單線程庫,可以使用single方式。
debug/release:編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。
由於我沒有指令stagedir,所以默認在源碼目錄下生成stage目錄,大致如下圖:
--------------------------------------分割線 --------------------------------------
Boost程序庫完全開發指南——深入C++“准”標准庫高清PDF版 http://www.linuxidc.com/Linux/2013-07/87574.htm
Ubuntu下編譯安裝boost庫 http://www.linuxidc.com/Linux/2013-07/87573.htm
Ubuntu下編譯boost 1.52b http://www.linuxidc.com/Linux/2013-02/79004.htm
Ubuntu編譯安裝boost並在eclipse C/C++中使用 http://www.linuxidc.com/Linux/2011-04/34790.htm
--------------------------------------分割線 --------------------------------------
注意對某一種類型的庫而言,有2個dll,2個lib,分別來自編譯目錄中的debug\threading-multi和release\threading-multi,還有其它lib,dll並沒有在生成的庫中。其中間編譯目錄result如filesystem庫中文件如下:
上面幾個目錄中的庫,有點亂,暫時還不太清楚具體區別是什麼,有待進一步了解。
最後生成的庫可在這裡下載:
------------------------------------------分割線------------------------------------------
FTP地址:ftp://ftp1.linuxidc.com
用戶名:ftp1.linuxidc.com
密碼:www.linuxidc.com
在 2014年LinuxIDC.com\6月\boost-1.53源碼編譯
下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm
------------------------------------------分割線------------------------------------------
4、最後測試驗證
需要在工程屬性中添加頭文件目錄路徑和生成庫目錄,但不需要指定庫名,因為有auto-link機制
參考網址:
http://www.linuxidc.com/Linux/2014-06/103498.htm
http://www.linuxidc.com/Linux/2014-06/103499.htm
另外,源碼內部的網頁幫助文檔很值得一看!