筆者還在 GitHub 上使用 Travis-CI,基於 Ubuntu 16.04/GCC 5.4.0/Clang 7.0.0 執行通過了所有的程式碼。
./bootstrap.sh;./b2 install
第一條命令 bootstrap.sh 是編譯前的設定工作,第二條命令才開始真正地編譯並安裝 Boost。得益於摩爾定律,現在 Boost 庫編譯所需要的時間和空間都大大縮減了,Boost 庫在目前主流級別的 CPU 上編譯只需要半小時左右,而以前則需要數個小時。
如果像上面這樣不指定額外選項,Boost 將編譯 release 版本的庫檔案,把標頭檔案安裝到“/usr/local/include”中,把庫檔案安裝到“/usr/local/lib”中。./b2 --buildtype=complete install
這樣將開始對 Boost 進行完整編譯,安裝所有偵錯版、發行版的靜態庫和動態庫。./b2--show-libraries
可檢視所有必須編譯後才能使用的庫。--with
或--without
選項可開啟或關閉某個庫的編譯,如:
./b2--with-date_time--buildtype=complete install
執行上述命令將編譯安裝 date_time 庫。sudo ./b2 link=static install
b2 和 bootstrap.sh 還有很多其他選項,如指定安裝路徑、指定 debug 或 release 版等,讀者可以使用--help
選項或參考 Boost 文件以獲得更多的資訊。
#define BOOST_VERSION 107200 //數位形式的版本號
#define BOOST_LIB_VERSION "1_72" //字串形式的版本號
#include <boost/version.hpp> //包含 Boost 標頭檔案 #include <boost/config.hpp> //包含 Boost 標頭檔案 int main() { cout << BOOST_VERSION << endl; //Boost 版本號 cout << BOOST_LIB_VERSION << endl; //Boost 版本號 cout << BOOST_PLATFORM << endl; //作業系統 cout << BOOST_COMPILER << endl; //編譯器 cout << BOOST_STDLIB << endl; //標準庫 return 0; }然後使用 g++ 編譯:
g++ -o a.out test.cpp -I. #編譯test.cpp,生成a.out
程式的執行結果如下:
107200
1_72
linux
GNU C++ version 7.4.0
GNU libstdc++ version 20181206