vs2017下boost庫編譯

2021-10-18 01:15:07 字數 2549 閱讀 3984

編譯

//以用tribool 庫

*.hpp是boost庫獨特檔案,它把c++類的宣告和實現都放在乙個檔案中,也就是「 *.h *.cpp」,所以檔案字尾是 *.hpp

剩下的少量庫(如 chrono,date_time,program_options,test,thread等)必須編譯成靜態庫或者動態庫,並在構建時指定連線選項才能使用。不過有的庫不需要編譯也可使用部分功能。

檢視vs版本

工程右鍵 「屬性」–>「配置屬性」->「常規」–>「平台工具集」(vs2017為v141)

vs命令列視窗編譯

在開始選單的vs選單項裡開啟「developer command prompt for vs2017」,並進入boost目錄 執行命令bootstrap.bat

building boost.build engine

會在根目錄下生產bjam.exe,b2.exe(理解為bjam的公升級版),project-config.jam,bootstrap.log檔案

使用bjam或b2編譯所需的boost庫

bjam install --toolset=msvc-

14.1

--without-python --prefix=

"d:\boost_test" link=

static runtime-link=shared threading=multi

b2 install --toolset=msvc-

14.1

--build-type=complete --prefix=「d:\boost_test」 link=shared runtime-link=shared runtime-link=

static threading=multi

等待執行完,會在d:\boost_test下生成乙個lib目錄和include目錄

bjam引數說明

stage/install:stage表示只生成庫,install還會生成包含標頭檔案的include目錄,但編譯時間較長;預設是stage

–stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成檔案的路徑。

bjam install --toolset=msvc-

14.1

--without-python --prefix=

"d:\boost_test" link=

static runtime-link=shared threading=multi

–build-type:complete編譯所有boost庫;預設complete

bjam stage --toolset=msvc-

14.1

--build-type=complete --stagedir=

"d:\boost_test" link=

static runtime-link=shared threading=multi

–without/with:選擇不編譯/編譯哪些庫。預設是全部編譯

bjam --show-libraries檢視boost包含庫

–toolset:指定編譯器

link:生成動態鏈結庫/靜態鏈結庫 static只會生成lib檔案 shared會生成lib檔案和dll檔案

runtime-link:動態/靜態鏈結c/c++執行時庫。同樣有shared和static兩種方式

threading:單/多執行緒編譯。現在基本都是multi方式了

address-model:64位平台還是32位平台,不填就兩種平台的庫都會編譯。

debug/release:debug版本,release版本,不填就兩種版本的庫都會編譯

VS2017 編譯64位boost靜態庫

1 開啟vs自帶的本地命令列工具,cd到boost庫根目錄 然後輸入 bootstrap.bat 2 開啟與bootstrap.bat同級的目錄中project config.jam檔案把內容替換成下面這樣的形式 import option using msvc 14.0 c program fil...

zlib庫VS2017編譯步驟

編譯步驟 編譯方法一 解壓原始碼檔案到指定目錄,例如 x zlib 開啟vs2017的developer command prompt for vs2017工具 切換到x zlib contrib masmx86目錄,如果想編譯x64的,可以進入masmx64目錄,我這裡只使用32位 執行bld m...

VS2017下編譯32位QT程式

1.新建乙個目錄並進入,然後執行 原始碼目錄 configure.bat skip qtwebengine confirm license opensource debug and release nomake tests nomake examples prefix 2.nmake 我編譯了4.5...