boost庫

Linux下安裝使用boost庫

apt命令安裝

sudo apt install libboost-dev
sudo apt install libboost-all-dev

這兩個命令可以安裝默認(rèn)版本的boost庫,如果想安裝特定版本,需要從源碼安裝

源碼安裝

  1. 下載boost源碼,如1.80版本
  2. 解壓
tar -xjf boost_XX
  1. 生成b2
./bootstrap.sh
  1. 編譯生成
./b2

這一步在當(dāng)前目錄編譯生成了boost的庫,在stage/lib下可以看到

  1. 編譯生成后需要安裝
./b2 --prefix=/usr/local install

這一步會將boost安裝到/usr/local下,頭文件安裝到/usr/local/include/boost下,庫文件安裝到/usr/local/lib/下,后綴會包含boost的版本
編譯參數(shù)

--prefix=<PREFIX>   編譯后安裝路徑,默認(rèn)C:\Boost
--build-type=<type> 編譯類型,可選minimal(最?。?、complete(完整),默認(rèn)minimal。
--with-<library>    加入此參數(shù),代表只編譯的庫。
--without-<library> 加入此參數(shù),代表忽略編譯的庫。
toolset             編譯器,win下默認(rèn)msvc,用MinGW則選擇gcc。

完整編譯(會編譯包含/不包含運(yùn)行時庫的debug/release的動態(tài)/靜態(tài)庫),編譯器選擇MinGW(gcc),多線程,編譯完成后將庫和頭文件復(fù)制到prefix路徑

使用

boost庫中有兩類型庫,一種是不需要編譯的,只需要包含hpp文件即可,另一種是需要編譯的庫,兩種庫采用cmake時有些區(qū)分。

不需編譯的

不需要編譯的boost庫由于沒有對應(yīng)的庫文件,所以在find_package命令中不能指定COMPONENTS,會找不到,只需要找到boost,添加boost的頭文件路徑即可

find_package(Boost REQUIRED)  # 
if(Boost_FOUND)
  target_include_directories(${Boost_INCLUDE_DIRS})
endif()

需要編譯的

find_package(Boost REQUIRED COMPONENTS <lib>)  # 需要添加庫名稱
if(Boost_FOUND)
  target_include_directories(${Boost_INCLUDE_DIRS})
  target_link_libraries(Boost::boost::<lib_name>)
endif()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容