日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux boost 64位编译,Boost在Linux 64 下的编译

發布時間:2023/12/15 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:

表示編譯器工具,默認自動檢測,安裝了多個編譯器的時候可以使用此屬性。可選的如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 下的编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。