「簡單的**他人,而沒有深入的學習,簡直就是對他人的不負責!對看到我這篇文章而去浪費1個多小時編譯的朋友說聲抱歉!」
2.解壓縮到d:\boost 目錄下
3.編譯bjam
(1)從vs2010的工具選單進入命令提示視窗(單擊「開始」按鈕,指向「所有程式」,指向「microsoft visual studio 2010」,指向「visual studio tools(工具)」,然後單擊「visual studio 2010 command prompt(命令提示)」
(2)cd到d:\boost\boost_1_46_0下執行bootstrap.bat,然後,會在d:\boost\boost_1_46_0\下生成bjam.exe
4.設定編譯環境(如果想去掉編譯警告需要修改)
修改user-config.jam (d:\boost\boost_1_46_0\tools\build\v2\user-config.jam) 的msvc configuration
# msvc configuration
# configure msvc (default version, searched for in standard locations and path).
# using msvc ;
using msvc : 10.0 : : /wd4819 /d_crt_secure_no_deprecate /d_scl_secure_no_deprecate /d_secure_scl=0 ;
5.將目錄cd到d:\boost\boost_1_46_0\下執行
(1) 編譯boost庫
bjam stage --without-python --toolset=msvc-10.0 --build-type=complete --stagedir="d:\boost\boost_1_46_0\bin\vc10" (這一步需要等待很長時間,大概乙個小時左右……)
下面詳細解釋一下每個引數的含義:
stage/install:stage表示只生成庫(dll和lib),
install還會生成包含標頭檔案的include目錄。
toolset:指定編譯器,可選的如borland、gcc、msvc(vc6)、msvc-10.0(vs20010)等。
without/with:選擇不編譯/編譯哪些庫。
stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成檔案的路徑。推薦給不同的ide指定不同的目錄,如vs2010對應的是d:\boost\boost_1_46_0\bin\vc10,否則都生成到乙個目錄下面,難以管理。
build-dir:編譯生成的中間檔案的路徑。這個本人這裡沒用到,預設就在根目錄(d:\boost\boost_1_46_0)下,目錄名為bin.v2(刪掉),等編譯完成後可將這個目錄全部刪除(沒用了),所以不需要去設定。
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版本,所以兩個都編譯。
執行完後(彈出輸入提示符)
6.設定vs2010環境。(注:在2010環境下這步,在專案-->右鍵屬性-->vc++ directories 中去填寫對應路徑 )
修改環境變數:$(boost): d:\boost\boost_1_46_0
tools -> options -> projects and solutions -> vc++ directories
在library files加上$(boost)\bin\vc10\lib
在include files加上$(boost)
使用舉例:
#include
此時,不用包含庫檔案,boost的auto-link機制將會自動幫我們包含對應的靜態lib。也就是說,boost預設是以靜態方式鏈結的,這樣我們的工程屬性最好也設為multi-threaded (debug)。如果想使用dll動態方式鏈結,需要預先定義巨集:
#define boost_all_dyn_link
#define boost_all_no_lib
#pragma comment(lib, "boost_thread-vc100-mt-1_46.lib")或
#pragma comment(lib, "boost_thread-vc100-mt.lib")
這兩個lib其實是一樣的,實在不明白boost編譯時為什麼每個庫都要複製乙份,難道是因為後者在公升級boost版本後不用改**?另外還有乙個比較有用的巨集:
#define boost_lib_diagnostic
它可以讓vc在編譯時的output視窗中輸出程式具體鏈結了哪些boost庫以及鏈結順序。
關於boost的auto-link機制,詳細可以看看boost\config\auto_link.hpp裡的**,很容易可以讀懂,並且值得我們學習。
VS2010 Boost編譯安裝
2.解壓縮到d boost 目錄下 3.編譯bjam 1 從vs2010的工具選單進入命令提示視窗 單擊 開始 按鈕,指向 所有程式 指向 microsoft visual studio 2010 指向 visual studio tools 工具 然後單擊 visual studio 2010 c...
VS2010下安裝boost庫
2.我放在d cpp目錄下 解壓到當前資料夾 3.開啟vs2010 vs tools vs命令提示 4.cd d cpp boost 1 46 1 5.輸入bootstrap,便生成bjam.exe檔案 6.輸入bjam toolset msvc 10.0 variant debug,release...
VS2010下安裝boost庫
2.我放在d cpp目錄下 解壓到當前資料夾 3.開啟vs2010 vs tools vs命令提示 4.cd d cpp boost 1 46 1 5.輸入bootstrap,便生成bjam.exe檔案 6.輸入bjam toolset msvc 10.0 variant debug,release...