http://www.cnblogs.com/cuish/p/4175491.htmlhtml
0、前提bootstrap
Boost庫版本 1.57.0windows
下載地址多線程
http://www.boost.org/users/history/version_1_57_0.html,選擇windows版工具
編譯器:VS2010 測試
編譯目標:靜態連接庫ui
C/C++運行庫連接方式: /MT /MTd /MD /MDdatom
官網給出的windows平臺編譯器測試包括.net
Windows:命令行
GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0
編譯步驟
一、經過VS2010命令提示符工具進入Boost庫根目錄
好比:H:\Boost\boost_1_57_0
二、運行根目錄下批處理文件
bootstrap.bat
三、執行bootstrap.bat後生成4個文件
b2.exe bjam.exe bootstrap.log project-config.jam
四、用 bjam.exe 來編譯boost庫
關於 bjam.exe編譯Boost庫的命令行參數的詳細參數能夠看 這個連接
bjam參數簡介
link參數
表示生成靜態連接庫 或 生成動態連接庫, link=static表示生成靜態連接庫, link=shared表示生成動態連接庫。
runtime-link參數
表示使用C/C++運行庫的方式,runtime-link=static表示靜態連接C/C++運行庫,runtime-link=shared標識動態連接C/C++運行庫。
--toolset參數
表示編譯boost庫的工具集, --toolset=msvc-10.0標識使用VS2010編譯,VS版本和工具集版本的對應關係以下:
msvc-6.0 : VC6.0
msvc-7.0: VS2003
msvc-8.0: VS2005
msvc-9.0: VS2008
msvc-10.0: VS2010
threading參數
表示使用多線程庫仍是單線程庫, single表示單線程, multi表示多線程
debug release標識生成debug或release版本
stage參數
表示只生成dll 或 lib,而不生成包含include目錄的頭文件目錄, 若是要生成包含頭文件的include目錄,須要使用install參數
--stagedir參數
表示生成目錄的存放目錄
在本文中編譯了boost中爲每一個庫編譯了4中C/C++連接方式的靜態連接庫
① /MT /MTd
bjam stage --toolset=msvc-10.0 --build-type=complete --stagedir="H:\Boost\boost_1_57_0\bin\vc10" link=static runtime-link=static threading=multi debug release
生成的庫名字格式
/MT: libboost_atomic-vc100-mt-s-1_57.lib /MTd: libboost_atomic-vc100-mt-sgd-1_57.lib
② /MD /MDd
bjam stage --toolset=msvc-10.0 --build-type=complete --stagedir="H:\Boost\boost_1_57_0\bin\vc10" link=static runtime-link=shared threading=multi debug release
生成的庫文件名字格式
/MD: libboost_atomic-vc100-mt-1_57.lib /MDd: libboost_atomic-vc100-mt-gd-1_57.lib
五、編譯完成
每類/MT /MTd /MD /MDd的靜態庫各有34個lib。
編譯完成後,刪除boost目錄的bin.v2臨時目錄。
六、在VS中使用boost庫
項目屬性--VC++目錄--包含目錄,設置爲boost根目錄
項目屬性--VC++目錄--庫目錄,設置lib文件目錄
七、參考文獻