Boost庫學習筆記(1) 安裝編譯

2021-10-11 04:25:54 字數 1617 閱讀 2494

boost是免費的可移植的c++開源庫,這裡版本選擇1.76.0。

bootstrap.bat
然後執行:

b2.exe install --prefix=d:\boost-1.76.0-windows-x86_64-msvc
boost庫將被安裝到目錄d:\boost-1.76.0-windows-x86_64-msvc下。

sudo ./bootstrap.sh --prefix=/opt/boost-1.76.0-ubuntu-x64
然後執行(注意:gcc5.4預設是不開啟c++11的,某些依賴c++11特性的**不會生效,部分lib依賴c++11的功能,如果不支援此特性,就不會被編譯。比如fiber在沒有開啟c++11支援下就不會被編譯。所以需要開啟c++11的支援,gcc5.4下只開啟-std=c++11是不能編譯fiber的,使用-std=c++14或者-std=c++17可以成功):

sudo ./b2 install

cxxflags

="-std=c++14"

boost庫將被安裝到目錄/opt/boost-1.76.0-ubuntu-x64下,設定環境變數,編輯/etc/profile檔案,末尾新增:

export

boost_root

=/opt/boost-1.76.0-ubuntu-x64 # 需要命名為boost_root, 否則cmake時會找不到boost模組

# 執行依賴

export

ld_library_path

=$boost_root/lib:$ld_library_path

# 開發依賴

export

cpath

=$boost_root/include:$cpath

export

library_path

=$boost_root/lib:$library_path

如何構建boost庫呢?大部分情況下,並不需要構建,因為大多數的boost庫都僅使用標頭檔案(.hpp):它們完全由包含模板和內聯函式的標頭檔案組成,不需要單獨編譯庫二進位制檔案,也不需要在鏈結時進行特殊處理。

只有少部分庫才需要單獨構建:

少部分庫有可選的單獨編譯的二進位制檔案:

visual studio需要設定工程屬性:

大部分的windows編譯器和鏈結器有所謂的auto-linking support

boost庫標頭檔案中有特殊的**,可以檢測編譯器選項,並使用這些資訊把正確的庫名稱編碼到目標檔案中。鏈結器將從我們所指定的目錄選擇具有該名稱的庫檔案。

how boost auto-linking makes choice

如果不想自動連線,則可以使用boost_all_no_lib巨集來取消自動連線,然後自行指定依賴庫檔案。

1.76.0庫官方文件說明

筆記 boost庫的編譯

公司用的是boost 1.48 和 1.58 下面以1.58為例 python 需要用到 boost.python 提前安裝好合適版本的 python 我的 python 2.7.15 解壓 確定位置即可 我的 h boost 1 58 0 其他的根據各個工程的需要。開始 所有應用 visual s...

Boost庫學習筆記

timer類 由於精度原因,不適合於精度很高或時間跨度很大的地方。也不能很好的跨平台。呼叫elapsed min 和elapsed max 分別獲取其精度,而且其精度根據平台會有變化。progress timer類繼承與timer類,但是其有乙個析構函式,析構的時候會自動呼叫elapsed 輸出從構...

boost 編譯 安裝

2.解壓到合適目錄,我是在d boost 1 47 0。3.開啟使用boost的vs版本的visual studio 命令提示。我用的是 2010 4.在命令提示中進入cd d boost 1 47 0 tools build v2 5.執行bootstrap.bat 等待片刻。6.將第5步在v2目...