boost庫編譯參數小結

編譯boost庫

32位編譯:

從開始菜單啓動Visual Studio 2013的vs2013 命令行,進入boost所在目錄,運行bootstrap.bat
編譯命令(例):

bjam.exe stage --toolset=msvc-12.0 --without-math --stagedir="vc12_x86" link=static runtime-link=shared threading=multi debug release

toolset:指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-10.0(VS2010)(vs2008 : msvc-9.0,vs2010 : msvc-10.0, VS2012、VS2013是msvc-12.0)
stagedir:表示編譯生成文件的路徑。build-dir:編譯生成的中間文件的路徑。這個本人這裏沒用到,默認就在根目錄(D:\boost\boost_1_57_0)下,目錄名爲bin.v2(刪掉),等編譯完成後可將這個目錄全部刪除(沒用了),所以不需要去設置。
without/with:選擇不編譯/編譯哪些庫。
address-model:要有address-model=64屬性,如果沒有這個屬性的話,會默認生成32位的平臺庫,加入這個選項才能生成64位的DLL。
threading:單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那麼還需要編譯單線程庫,可以使用single方式。
link:靜態庫版link=shared,動態庫link=shared
runtime-link:動態/靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式,各人可以根據自己的需要選擇編譯。一般link只選static的話,只需要編譯2種組合即可,即link=static runtime-link=shared和link=static runtime-link=static。
debug/release:編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。

64位編譯:

從開始菜單啓動Visual Studio 2013的vs2013 x64兼容工具命令行,然後轉到boost根文件夾,運行bootstrap.bat生成x64版的bjam.exe。
在編譯命令中加入address-model=64屬性

還有人總結windows下boost庫的命名特點:

link=static runtime-link=static 得到 libboostxxxxx.lib
link=shared runtime-link=shared 得到 boostxxxx.lib 和 boostxxxx.dll

由以上的文件夾層次結構基本就可以得出結論:
1、以“lib”開頭的是“link-static”版本的,而直接以“boost”開頭的是“link-shared”版本的。
2、有“d”的爲debug版本,沒有的則是release版本。
3、有“s”的爲“runtime-link-static”版本,沒有的則是“runtime-link-shared”版本。
4、有“mt”的爲“threading-multi”版本,沒有的則是“threading-single”版本。


本文參考:vs2013 boost庫編譯小結

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