Boost------ windows 库的编译安装
1、下載boost庫(本實例用的boost1.63)并解壓
2、進入boost庫解碼目錄,打開VS2017開發人員命令提示符,命令行執行bootstrap.bat,生成b2或bjam可執行編譯工具;
3. 運行b2命令
.–prefix
指定路徑
. variant=debug|release
決定編譯用什么版本(Debug or Release)
. link=static|shared
決定使用靜態庫還是靜態庫
注:
/MT是 "multithread, static version ” 意思是多線程靜態的版本,定義了它后,編譯器把LIBCMT.lib 安置到OBJ文件中,讓鏈接器使用LIBCMT.lib 處理外部符號。
/MD是 "multithread- and DLL-specific version” ,意思是多線程DLL版本,定義了它后,編譯器把 MSVCRT.lib 安置到OBJ文件中,它連接到DLL的方式是靜態鏈接,實際上工作的庫是MSVCR80.DLL。
. threading=single|multi
決定使用單線程還是多線程
. runtime-link=static|shared
決定是靜態還是動態鏈接C/C++標準庫
. 編譯不同C++版本
指定工具集為toolset.
vs2015 :toolset=msvc-14.0,
vs2008:toolset=msvc-9.0
vs2010:toolset=msvc-10.0
vs2013:toolset=msvc-12.0
vs2017:toolset=msvc-15.0
. 編譯不同系統位
如果編譯32位,則使用architecture=x86 address-model=32
如果編譯64為,則使用architecture=x86 address-model=64
4. 有時候不知道到底用MD,MT哪種模式,那就使用"–build-type=complete"把所有類型的庫都生成出來。
eg. 如下生成debug版本的庫:
b2 --build-type=complete toolset=msvc-14.2 address-model=32 --prefix="./all" threading=multi variant=debug install
使用場景遇到鏈接error"打開文件“libboost_filesystem-vc140-mt-1_58.lib” 問題,就可以如上解決,不斷地試驗到底需要哪個版本。
【參考】
[1] csdn boost b2/bjam 參數說明
[1] csdn vs2017編譯boost庫 ,解決無法打開文件“libboost_filesystem-vc140-mt-1_58.lib” 問題
總結
以上是生活随笔為你收集整理的Boost------ windows 库的编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bitcoin代码中的Boost sig
- 下一篇: IPFS (2) 系统技术架构