出處:http://blog.csdn.net/kangroger/article/details/39393769
(1)首先下載源代碼:http://softlayer-dal.dl.sourceforge.net/project/boost/boost/1.56.0/boost_1_56_0.zip
解壓到某個目錄,我解壓到了D盤根目錄:D:boost_1_56_0
(2)生成bjam.exe可執行文件
用VS2010命令行
進入到到目錄D:boost_1_56_0,運行booststrap.bat得到:
這時在目錄D:boost_1_56_0生成了b2.exe、bjam.exe、project-config.jam文件。
(3)用bjam.exe編譯
運行命令bjam stage –without-python –toolset=msvc-10.0 –build-type=complete –stagedir=”D:boost_1_56_0binvc10″ link=static runtime-link=shared threading=multi debug release
bjam可以參考http://blog.chinaunix.net/uid-22301538-id-3158997.html
stage表示只生成庫(dll和lib),用install的話還會生成包含頭文件的include目錄。
toolset指定編譯器,VS2010用msvc-10.0。
without/with表示不編譯/編譯哪些庫。
stagedir,當使用stage時用stagedir,使用install用prefix,表示編譯生成文件的路徑。路徑的命名最好和編譯器相關,編譯管理。
link指定生成動態鏈接庫或靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。
runtime-link,動態/靜態鏈接C/C++運行時庫。有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式。
threading,單/多線程編譯。
debug/release,編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。
toolset指定編譯器,VS2010用msvc-10.0。
without/with表示不編譯/編譯哪些庫。
stagedir,當使用stage時用stagedir,使用install用prefix,表示編譯生成文件的路徑。路徑的命名最好和編譯器相關,編譯管理。
link指定生成動態鏈接庫或靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。
runtime-link,動態/靜態鏈接C/C++運行時庫。有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式。
threading,單/多線程編譯。
debug/release,編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。
差不多需要一小時,編譯完成(中間會有警告)。
編譯好後,在根目錄會有個bin.v2文件夾,是編譯過程中的臨時文件夾,很大,可以手動刪除。
(4)在VS中使用Boost庫
新建工程後需要把Boost庫包含到工程中,右鍵選擇屬性,在VC++目錄的“包含目錄”中添加Boost的根目錄,在“庫目錄”添加剛剛編譯生成的位置再加上路徑lib。
之後包好頭文件即可使用,例如一個多線程的測試:
- #include “boost/thread.hpp”
- #include “iostream”
- using namespace std;
- void threadFunc()
- {
- cout << “This is a thread function” << endl;
- }
- int main()
- {
- boost::function<void()> func(threadFunc);
- boost::thread t(func);
- t.join();
- return 0;
- }