boost的編譯使用的不是已經成為公認標準的make,而是專門為boost開發的工具bjam(boost jam)。
本文以boost1.40為例,在linux平台的程式設計環境為gcc4.4.1,假設boost**在/usr/src/boost_1_40_0目錄,步驟如下。
獲得bjam有3種方式,如下:
方法2:從boost源**中提供的bjam**編譯出可執行程式。
方法3:通過bootstrap程式生成bjam。
方法1:
# apt-get install bjam
方法2:
(1) # cd /usr/src/boost_1_40_0/tools/jam/src
(2) # ./build.sh
編譯完成後:
生成的可執行檔案為
# /usr/src/boost_1_40_0/tools/jam/src/bin.linuxx86/bjam
需要將bjam.exe拷貝到源**所在的目錄
# cp bin.linuxx86/bjam /usr/src/boost_1_40_0
方法3:
(1) # cd /usr/src/boost_1_40_0
(2) # ./bootstrap.sh
該方法直接在boost源**目錄下生成bjam檔案。
使用bjam前,需要修改bjam的配置檔案。linux平台的配置檔案:
/usr/src/boost_1_40_0/tools/build/v2/user-config.jam
修改如下。注:筆者在實驗時,不修改貌似也很正常。
將43行的「# using gcc ;」前的注釋符號『#』去掉,表明用到使用gcc編譯。
如果要使用stlport作為其標準庫,將75行前的『#』去掉。
對boost進行完整編譯,生成所有除錯版、發行版的靜態庫和動態庫。
方法1:
# cd /usr/src
# wget
# tar --bzip2 -xvf boost_1_40_0.tar.bz2
# cd boost_1_40_0
# bjam --toolset=gcc --build-type=complete stage
或# ./bjam --build-type=complete --layout=versioned //庫名帶gcc版本
或# ./bjam --build-type=complete --layout=tagged stage
或# ./bjam
方法2:
# cd /usr/src/boost_1_40_0/tools/jam
# ./build_dist.sh
也會完成linux平台bjam和boost的所有編譯工作,並生成所有除錯版、發行版的靜態庫和動態庫。但不推薦該方式。
編譯成功後,將在/usr/src/boost_1_40_0/bin.v2目錄下生成諸多檔案,包括.a和.so.1.40.0檔案,這就是在linux平台要使用boost需要的,其他的檔案可以刪除。
# ./bjam install
將生成的庫預設安裝到/urs/local/lib目錄。
也可以把編譯和安裝寫在一起,如:./bjam --build-type=complete --layout=tagged stage install
完整編譯boost費時費力,且這些庫在開發過程中並不一定全部用到,因此,bjam也支援使用者自行選擇要編譯的庫。
在完全編譯的基礎上,使用--with或者—without選擇可以開啟或者關閉某個庫的編譯,例如,僅僅編譯date_time庫:
# cd /usr/src/boost_1_40_0
# ./bjam --toolset=msvc --with-date_time --build-type=complete stage
當然,bjam還有很多其他選項,如指定安裝路徑,指定debug或release等,可參考bjam文件或幫助。
--build-dir=編譯的臨時檔案會放在builddir裡(編譯完就可刪除)
--stagedir=存放編譯後庫檔案的路徑,預設是stage
--build-type=complete 編譯所有版本(確切地說是相當於:variant=release, threading=multi;link=shared|static;runtime-link=shared)
variant=debug|release 編譯什麼版本(debug or release?)
link=static|shared 使用靜態庫還是動態庫。
threading=single|multi 單執行緒還是多執行緒庫。
runtime-link=static|shared 決定是靜態還是動態鏈結c/c++標準庫。
--with-只編譯指定的庫,如輸入--with-regex就只編譯regex庫了。
--show-libraries 顯示需要編譯的庫名稱
另外可以參考:
linux中安裝boost庫詳解:
Linux平台Boost的編譯方法
本部落格 linux 平台boost 的編譯方法 boost 的編譯使用的不是已經成為公認標準的 make 而是專門為 boost 開發的工具 bjam boost jam 本文以boost1.40 為例,在 linux 平台的程式設計環境為 gcc4.4.1 假設boost 在 usr src b...
Linux平台Boost的編譯方法
boost 的編譯使用的不是已經成為公認標準的 make 而是專門為 boost 開發的工具 bjam boost jam 本文以boost1.40 為例,在 linux 平台的程式設計環境為 gcc4.4.1 假設boost 在 usr src boost 1 40 0 目錄,步驟如下。1.獲得b...
boost 編譯,windows平台
2編譯及安裝boost庫 進入dos環境,利用cd命令進入一中解壓的boost檔案根目錄,輸入bjam toolset gcc prefix c boost install進行編譯,此命令會把編譯後的boost檔案安裝到c boost下 注意 命令列中前後不可以有空格,資料夾名字隨便取,但是乙個資料...