0、前提
Boost庫版本 1.57.0
下載地址
http://www.boost.org/users/history/version_1_57_0.html,選擇windows版
編譯器:VS2010
編譯目標:靜態鏈接庫
C/C++運行庫鏈接方式: /MT /MTd /MD /MDd
官網給出的windows平台編譯器測試包括
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
編譯步驟
1、通過VS2010命令提示符工具進入Boost庫根目錄
比如:H:\Boost\boost_1_57_0
2、運行根目錄下批處理文件
bootstrap.bat
3、執行bootstrap.bat后生成4個文件
b2.exe bjam.exe bootstrap.log project-config.jam
4、用 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
5、編譯完成
每類/MT /MTd /MD /MDd的靜態庫各有34個lib。
編譯完成后,刪除boost目錄的bin.v2臨時目錄。
6、在VS中使用boost庫
項目屬性--VC++目錄--包含目錄,設置為boost根目錄
項目屬性--VC++目錄--庫目錄,設置lib文件目錄
7、參考文獻
編譯Boost 詳細步驟 適用 VC6 VS2003 VS2005 VS2008 VS2010