Boost C Libraries 編譯安裝

2021-10-07 11:56:43 字數 2253 閱讀 9297

boost c++ 庫(libraries)是一組擴充套件c++功能的經過同行評審(peer-reviewed)且開放原始碼程式庫。大多數的函式為了能夠以開放原始碼、封閉專案的方式運作,而許可於boost軟體許可協議(boost software license)之下。許多boost的開發人員是來自c++標準委員會,而部分的boost庫成為c++的tr1標準之一。

官網:

目錄說明:

tar -zxvf boost_1_73_0.tar.gz
2、進入解壓後boost目錄

cd  boost_1_73_0
3、執行bootstrap.sh生成boost的編譯工具b2

./bootstrap.sh --with-libraries=all --with-toolset=gcc
引數說明:

(1)–with-libraries

指定編譯哪些boost庫,all的話就是全部編譯,只想編譯部分庫的話就把庫的名稱寫上,之間用 , 號分隔即可。

(2)–with-toolset

指定編譯時使用哪種編譯器,linux下使用gcc即可,如果系統中安裝了多個版本的gcc,在這裡可以指定gcc的版本,比如–with-toolset=gcc-4.4。

4、編譯

./b2 toolset=gcc
5、安裝

./b2 install --prefix=/usr
(1)–prefix

用來指定boost的安裝目錄,不加此引數的話預設將標頭檔案安裝在/usr/local/include/boost目錄下,庫檔案在/usr/local/lib/目錄下。這裡把安裝目錄指定為–prefix=/usr則boost會直接安裝到系統頭檔案目錄和庫檔案目錄下,可以省略配置環境變數。

2、執行vs開發人員命令提示

3、進入解壓後boost目錄

cd  boost\boost_1_73_0
4、執行bootstrap.bat生成boost編譯工具

bootstrap.bat
在boost_1_73_0資料夾下生成b2.exe和bjam.exe

5、在目錄boost_1_73_0下有乙個專案配置檔案project-config.jam,用記事本或其他文字編輯工具開啟,做如下修改

其中第二行的目錄是vs的安裝目錄中cl.exe的位置。

6、編譯安裝

b2.exe stage --toolset=msvc-14.0 address-model=64 --stagedir="c:\boost\boost_1_73_0\boost"threading=multi --build-type=complete
引數說明:

(1)–toolset:設定編譯器,如果用vc,設msvc, 用mingw就設gcc。

(2)stage:可選install,選stage只生成庫(靜態庫和動態庫),install還包含include目錄。

(3)–build-dir:編譯的臨時檔案存放位置。

(4)–stagedir:存放編譯後庫檔案的路徑,預設是stage。

(5)–build-type=complete:編譯所有版本

(6)variant=debug|release 決定編譯什麼版本(debug or release?)

(7)link=static|shared 決定使用靜態庫還是動態庫,一般預設靜態。

(8)threading=single|multi 決定使用單執行緒還是多執行緒庫。

(9)runtime-link=static|shared 決定是靜態還是動態鏈結c/c++標準庫。

(10)address-mode:address-model=64,沒有這個屬性,預設生成32位庫,加入這個選項才能生成64位的dll。如果執行在vs32位的命令列下需要新增」 architecture=x86」。

mysql devel 編譯 mysql編譯安裝

防火牆 selinux systemctl stop firewalld systemctl disable firewalld vim etc selinux config selinux disabled yum install wget y wget o mariadb 10.2.29.tar...

mysql devel 編譯 mysql編譯安裝

cd usr local wget wget wget 帶boost的mysql原始碼安裝 1 安裝依賴包 yum y install make gcc c cmake bison devel ncurses devel bison perl perl devel perl perl devel 2...

最近編譯tolua runtime安卓編譯錯誤

編譯時出現以下錯誤 in file included from lj ffrecord.c 859 0 lj recdef.h 224 1 error recff rawlen undeclared here not in a function recff rawlen,makefile 645 r...