linux boost 64位编译,Boost在Linux 64 下的编译
1. 下載最新版的boost
wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz
2. 解壓
3. 執行如下腳本
functionmake_boost() {
deploy=$(pwd)
$deploy/b2 stage --toolset=gcc-4.9 --stagedir="$deploy/gcc" \
architecture=x86 address-model=64\
link=static runtime-link=static threading=multi \--without-python
#--with-system --with-thread --with-date_time
}functionmake_issue() {
gcc_path=/opt/rh/devtoolset-3/root/usr/bin/g++version=$($gcc_path -dumpversion | awk -F'.' '{printf("%s.%s\n", $1, $2);}')
echo"using gcc : $version : $gcc_path ;" > tools/build/src/user-config.jam
}
make_issue
make_boost
第一步是為了啟用4.9的編譯器。
make的參數解釋如下
下面對上面的bjam的各個參數進行解釋說明:
1. stage/install:
stage表示只生成庫(dll和lib),install表示附帶安裝功能,會生成包含頭文件的include目錄。推薦使用stage,因為install生成的這個include目錄實際就是boost安裝包解壓縮后的boost目錄(H:\boost\boost_1_55_0\boost,只比include目錄多幾個非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節省編譯時間,也節省硬盤空間
2.?toolset:
表示編譯器工具,默認自動檢測,安裝了多個編譯器的時候可以使用此屬性??蛇x的如borland、gcc、msvc(VC6)、msvc-12.0(VS2013)、msvc-14.0(VS2015)等,我安裝的是VS2008,所以是msvc-9.0(如果你是VS2005,可以使用msvc-8.0 VS2010是msvc-10.0)
3.?stagedir/prefix:
stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,例如這里是VS2008對應的是?H:\boost\boost_1_55_0\vc90
如果使用了install參數,那么還將生成頭文件目錄,vc90 對應的就是 H:\boost\boost_1_55_\boost\bin\vc90\include\boost_1_55_0\boost
4.?architecture
表示架構,也就是你的CPU架構,所以是x86
5.?address-model
地址長度,32表示編譯32位的庫文件,64表示編譯64位的庫文件
6.?link
生成動態鏈接庫還是靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因為最終發布程序帶著boost的dll感覺會比較累贅
7.?runtime-link
動態還是靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式,各人可以根據自己的需要選擇編譯
GCC下,在生成動態庫(–link=shared)時,就不允許進行靜態鏈接到C運行庫(或C++標準庫)
8.?threading
單線程還是多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫,可以使用single方式
9.?debug/release:
編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯
10.?without/with:
選擇不編譯/編譯哪些庫。這里我們指定要編譯哪些庫,就使用了witth,注意寫法:--with-thread --with-date_time,同樣,如果不想編譯哪些庫,可以類似寫法--without-thread
參考資料
https://blog.csdn.net/yzf279533105/article/details/77658367
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的linux boost 64位编译,Boost在Linux 64 下的编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux ubuntu ssh,Lin
- 下一篇: 各种硬件接口_sdio接口速率