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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

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

發(fā)布時(shí)間:2023/12/15 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux boost 64位编译,Boost在Linux 64 下的编译 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 下載最新版的boost

wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz

2. 解壓

3. 執(zhí)行如下腳本

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的參數(shù)解釋如下

下面對(duì)上面的bjam的各個(gè)參數(shù)進(jìn)行解釋說(shuō)明:

1. stage/install:

stage表示只生成庫(kù)(dll和lib),install表示附帶安裝功能,會(huì)生成包含頭文件的include目錄。推薦使用stage,因?yàn)閕nstall生成的這個(gè)include目錄實(shí)際就是boost安裝包解壓縮后的boost目錄(H:\boost\boost_1_55_0\boost,只比include目錄多幾個(gè)非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節(jié)省編譯時(shí)間,也節(jié)省硬盤(pán)空間

2.?toolset:

表示編譯器工具,默認(rèn)自動(dòng)檢測(cè),安裝了多個(gè)編譯器的時(shí)候可以使用此屬性??蛇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時(shí)使用stagedir,install時(shí)使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,例如這里是VS2008對(duì)應(yīng)的是?H:\boost\boost_1_55_0\vc90

如果使用了install參數(shù),那么還將生成頭文件目錄,vc90 對(duì)應(yīng)的就是 H:\boost\boost_1_55_\boost\bin\vc90\include\boost_1_55_0\boost

4.?architecture

表示架構(gòu),也就是你的CPU架構(gòu),所以是x86

5.?address-model

地址長(zhǎng)度,32表示編譯32位的庫(kù)文件,64表示編譯64位的庫(kù)文件

6.?link

生成動(dòng)態(tài)鏈接庫(kù)還是靜態(tài)鏈接庫(kù)。生成動(dòng)態(tài)鏈接庫(kù)需使用shared方式,生成靜態(tài)鏈接庫(kù)需使用static方式。一般boost庫(kù)可能都是以static方式編譯,因?yàn)樽罱K發(fā)布程序帶著boost的dll感覺(jué)會(huì)比較累贅

7.?runtime-link

動(dòng)態(tài)還是靜態(tài)鏈接C/C++運(yùn)行時(shí)庫(kù)。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產(chǎn)生4種組合方式,各人可以根據(jù)自己的需要選擇編譯

GCC下,在生成動(dòng)態(tài)庫(kù)(–link=shared)時(shí),就不允許進(jìn)行靜態(tài)鏈接到C運(yùn)行庫(kù)(或C++標(biāo)準(zhǔn)庫(kù))

8.?threading

單線程還是多線程編譯。一般都寫(xiě)多線程程序,當(dāng)然要指定multi方式了;如果需要編寫(xiě)單線程程序,那么還需要編譯單線程庫(kù),可以使用single方式

9.?debug/release:

編譯debug/release版本。一般都是程序的debug版本對(duì)應(yīng)庫(kù)的debug版本,所以?xún)蓚€(gè)都編譯

10.?without/with:

選擇不編譯/編譯哪些庫(kù)。這里我們指定要編譯哪些庫(kù),就使用了witth,注意寫(xiě)法:--with-thread --with-date_time,同樣,如果不想編譯哪些庫(kù),可以類(lèi)似寫(xiě)法--without-thread

參考資料

https://blog.csdn.net/yzf279533105/article/details/77658367

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的linux boost 64位编译,Boost在Linux 64 下的编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。