Boost大部分組件無需編譯可直接包含頭文件使用,但還有一些庫需要編譯成靜態庫或動態庫才能使用。可使用下文將提到的bjam工具:bjam --show-libraries 查看必須編譯才能使用的庫。
編譯安裝環境:Win7,VS2008(msvc-9.0)
1. 下載boost安裝包,我前下載的是1.51版的;
(英文版安裝幫助:http://www.boost.org/doc/libs/1_51_0/more/getting_started/windows.html#or-build-from-the-command-prompt)
2. 解壓至D:\boost;
3. 啟動Visual Studio 2008 Command Prompt,切換至解壓文件目錄,運行bootstrap.bat,得到bjam.exe工具;
(Boost的編譯不使用標準make,而是專門的工具bjam [boost jam])
4. 運行bjam編譯:
bjam --toolset=msvc-9.0 --build-type=complete
toolset選項指定編譯器,如Microsoft的msvc、GNU的gcc、Apple Computer的darwin等;
(這里需要指出你所使用的編譯器版本,VC2008是9.0,VC2010是10.0,英文版安裝幫助文檔中也以字體加粗形式強調在windows下要指出編譯器版本。)
build-type選項為編譯類型,當前選擇的是完整編譯;完整編譯需時較長,我機器運行了45分鐘左右。也可單獨選擇特定組件編譯。
5. 編譯完成,可配置VS2008 Tools > Options > Projects and Solutions > VC++ Directories頁,選擇Include files,將d:\boost\目錄加到最前。
?
最后為當前project配置項目屬性:
-
Properties > Configuration Properties > C/C++ > General > Additional Include Directories,輸入boost根目錄如的d:\boost\boost_1_51_0
-
Configuration Properties > C/C++ > Precompiled Headers, 變Use Precompiled Header (/Yu)?為 Not Using Precompiled Headers.
?
我因為想在命令行直接調用cl編譯,就把boost\bin.v2下的所有.lib和.dll文件全部搜索出來,總共208+50=258個文件拷貝到單獨的目錄,并在環境變量中新增一條lib記錄,值為該目錄(d:\boost\boost_1_51_0\vc9lib),之后cl /EHsc xxx.cpp 才找得到庫文件使調用成功。不知道有沒有其它更簡便的途徑。