VS2010 編譯安裝boost庫

VS2010 編譯安裝boost庫

譯自:http://leaver.me/archives/721.html

方法記錄如下:
1.下載boost
從boost官網( http://www.boost.org )上下載最新的boost版本,現在最新是1.55版本,解壓到自定義目錄(我解壓到了D:/program files,最終的目錄結構是D:\Program Files\boost_1_55_0)

2.編譯安裝

在D:\Program Files\boost_1_55_0的目錄下,有一個bootstrap.bat文件,直接雙擊運行。就會在同目錄生成b2.exe;bjam.exe兩個文件。

3.設定編譯環境
修改user-config.jam (D:\Program Files\boost_1_55_0\tools\build\v2\user-config.jam) 的MSVC configuration
# MSVC configuration
# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;
在上面這段的下面直接添加如下的文字。

usingmsvc:10.0::/wd4819/D_CRT_SECURE_NO_DEPRECATE/D_SCL_SECURE_NO_DEPRECATE/D_SECURE_SCL=0;

保存關閉。

4.開始編譯
點擊開始->所有程序->“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然後單擊“Visual Studio 2010 command prompt(命令提示)” 使用cd切換到D:\Program Files\boost_1_55_0目錄。這個就不說了
然後輸入如下的代碼:

b2 toolset=msvc-10.0 architecture=x86 instruction-set=i686 address-model=32 link=static
variant=debug,release threading=multi runtime-link=static --without-python --without-mpi
--without-wave --without-graph --without-math --without-serialization stage

解釋一下命令的意思:
1.toolset:表示編譯器工具,我安裝的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0)
2.architecture:表示架構,也就是你的CPU架構,x86,x64,因爲我安裝的是win7 32位,所以使用了x86的架構
3.instruction-set:表示指令集,依然是8086指令集
4.address-model:表示地址長度爲32位
5.link:表示生成動態/靜態鏈接庫,動態鏈接庫是shared,靜態鏈接庫是static,一般都會編譯成靜態庫,因爲給出程序的時候打包boost的庫會非常龐大
6.variant:表示生成的Debug或者release版本,一般情況下會兩種版本都會編譯出來的
7.threading:表示單/多線程編譯,一般我們的程序都會用到多線程,所以選擇了multi
8.runtime-link:表示動態/靜態鏈接C/C++運行時庫(C/C++ Runtime),我們選擇了靜態鏈接
9.without/with:表示不需要編譯/需要編譯哪些庫,一些自己不用的庫可以無需編譯
10.stage/install:stage表示只生成庫文件(DLL和Lib),install還會生成包含頭文件的include目錄,推薦使用stage,因爲boost_1_49\boost中就是boost庫完整的頭文件,所以無需再拷貝一份出來。編譯出來的庫會放在stage文件夾中
這樣一份完整的boost庫就生成了,剩下就是直接使用到項目中了。

其實編譯的具體命令都是可以自己寫的。如果你需要編譯所有。只需要使用下面的這行代碼
b2 –toolset=msvc-10.0 –build-type=complete
就可以了。

不出問題的話。就開始編譯了。。登個半個多小時吧。就會完成了。
5.設置vs
打開vs,新建一個工程。然後工程屬性。配置屬性->C/C++ ,附加包含目錄
填上
D:\Program Files\boost_1_55_0;%(AdditionalIncludeDirectories)
這個是最終的結果,你也可以手動添加

在左側選擇鏈接器->附加庫目錄,填上
D:\Program Files\boost_1_55_0\stage\lib;%(AdditionalLibraryDirectories)
就可以了。

6.測試
在你新建的工程裏輸入如下的代碼。運行成功就說明可以了

#include <boost/thread/thread.hpp>
#include <iostream>
 
void hello()
{
        std::cout<<
        "Hello world, I'm a thread!"
        <<std::endl;
}
 
int main(intargc,char*argv[])
{
        boost::thread thrd(&hello);
        thrd.join();
        return 0;
}

參考: 

http://www.cppfans.org/1317.html
http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html
http://www.cppblog.com/shaker/archive/2011/11/30/33583.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章