下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Boost下載安裝編譯配置使用指南理論上,本文適用于boost的各個(gè)版本,尤其是最新版本1.46.0;適用于各種C+編譯器,如VC6.0,VS2003,VS2005,VS2008,gcc,C+ Builder等。一、下載首先從boost官方主頁下載最新版boost安裝包(目前最新版是1.46.0)。因?yàn)閎oost一部分類是需要編譯成庫(kù)才能使用的,所以我們還需要準(zhǔn)備好boost專用的編譯輔助工具bjam。網(wǎng)上很多人都提倡直接使用boost安裝包中附帶的bjam源碼來編譯出bjam,但是之前需要修改若干配置腳本才能編譯成功。個(gè)人認(rèn)為真沒什么必要,費(fèi)這勁毫無意義
2、。boost官方網(wǎng)站在提供boost安裝包下載鏈接的同時(shí)也提供與該版本安裝包對(duì)應(yīng)的bjam的下載,只有200多KB,可以一同下載下來。二、安裝將boost安裝包解壓至本地目錄,如:E:SDKboost_1_39_0,然后將bjam.exe拷貝到該目錄下(bjam必須與boost-build.jam在同級(jí)目錄)。三、編譯接下來就是最重要的編譯步驟了。需要打開命令提示符(cmd.exe)窗口并執(zhí)行bjam,可以使用help參數(shù)來查看命令幫助。這里詳細(xì)講解一下bjam的命令行參數(shù),因?yàn)樗浅V匾?。首先,它涉及到編程環(huán)境的搭建,你需要根據(jù)自己今后具體的使用環(huán)境來選擇合適的命令行參數(shù);其次,它影響到你的
3、硬盤空間,完全編譯的話據(jù)說在3G以上,如果你同時(shí)擁有2個(gè)以上的IDE(如VC6和VC9共存)而且都要用到boost,那么占用多少硬盤就自己算吧雖說如今大家的硬盤空間都不成問題,但就像本人一樣崇尚合理利用資源不習(xí)慣鋪張浪費(fèi)提倡節(jié)儉的童子應(yīng)該大有人在。綜合以上兩點(diǎn)因素,本人使用的 bjam命令如下:bjam stage toolset=msvc-9.0 without-python stagedir=”E:SDKboost_1_39_0vc9 link=shared runtime-link=shared threading=multi debug release下面詳細(xì)解釋一下每個(gè)參數(shù)的含義,請(qǐng)
4、務(wù)必仔細(xì)看完:stage/install:stage表示只生成庫(kù)(dll和lib),install還會(huì)生成包含頭文件的include目錄。本人推薦使用stage,因?yàn)閕nstall生成的這個(gè)include目錄實(shí)際就是boost安裝包解壓縮后的boost目錄(E:SDKboost_1_39_0boost,只比include目錄多幾個(gè)非hpp文件,都很?。?,所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節(jié)省編譯時(shí)間,也節(jié)省硬盤空間。toolset:指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。without/with:選擇不編
5、譯/編譯哪些庫(kù)。本人不需要編譯python庫(kù),所以排除之,可以根據(jù)各人需要選擇,默認(rèn)是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語言支持的,應(yīng)該到python官方主頁下載安裝。stagedir/prefix:stage時(shí)使用stagedir,install時(shí)使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,如VS2008對(duì)應(yīng)的是E:SDKboost_1_39_0vc9lib,VC6對(duì)應(yīng)的是E:SDKboost_1_39_0vc6lib,否則都生成到一個(gè)目錄下面,難以管理。如果使用了install參數(shù)
6、,那么還將生成頭文件目錄,vc9對(duì)應(yīng)的就是E:SDKboost_1_39_0vc9includeboost-1_39boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。build-dir:編譯生成的中間文件的路徑。這個(gè)本人這里沒用到,默認(rèn)就在根目錄(E:SDKboost_1_39_0)下,目錄名為bin.v2,等編譯完成后可將這個(gè)目錄全部刪除(沒用了),所以不需要去設(shè)置。link:生成動(dòng)態(tài)鏈接庫(kù)/靜態(tài)鏈接庫(kù)。生成動(dòng)態(tài)鏈接庫(kù)需使用shared方式,生成靜態(tài)鏈接庫(kù)需使用 static方式。這里需要注意的是,static方式下,最終生成的很多靜態(tài)鏈接庫(kù)大小都在幾兆、幾十兆,甚至接近百
7、兆。這么大的庫(kù)我們一般是不會(huì)采用靜態(tài)鏈接方式的,所以這些庫(kù)不推薦以static方式編譯(without掉);如果已經(jīng)編譯了趕快刪,肯定沒用,否則將占用近1G的硬盤空間。以下是巨型庫(kù)黑名單:wave、graph、math、regex、test、program_options、serialization、signals。runtime-link:動(dòng)態(tài)/靜態(tài)鏈接C/C+運(yùn)行時(shí)庫(kù)。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產(chǎn)生4種組合方式。雖然它和link屬性沒有直接關(guān)系,但我們習(xí)慣上,一個(gè)工程如果用動(dòng)態(tài)鏈接那么所有庫(kù)都用動(dòng)態(tài)鏈接,如果用靜態(tài)鏈接那么所有庫(kù)
8、都用靜態(tài)鏈接。所以這樣其實(shí)只需要編譯2種組合即可,即link=shared runtime-link=shared和link=static runtime-link=static。threading:?jiǎn)?多線程編譯。一般都寫多線程程序,當(dāng)然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫(kù),可以使用single方式。debug/release:編譯debug/release版本。一般都是程序的debug版本對(duì)應(yīng)庫(kù)的debug版本,所以兩個(gè)都編譯。本人按以上方式分別編譯了靜態(tài)鏈接和動(dòng)態(tài)鏈接兩個(gè)版本后,整個(gè)E:SDKboost_1_39_0目錄(包括安裝包解壓縮文件和編譯生成的
9、庫(kù)文件)只有250MB。事實(shí)上編譯完成后安裝包解壓縮文件除了boost目錄之外其他目錄和文件已經(jīng)可以刪除了,這樣還可以騰出150MB的空間來。不過我又研究了一下,其實(shí)libs這個(gè)目錄也很有用,它提供了所有Boost類的使用范例,平時(shí)可以作為參考;另外doc目錄是一個(gè)完整的boost使用幫助文檔,當(dāng)然最好也不要?jiǎng)h了。這樣剩下的幾個(gè)目錄和文件加起來也就十多兆,索性都給它們留一條生路吧。呵呵,一個(gè)完整而又完美的boost目錄就此誕生了。如果圖省事,不想了解這么多,那么有簡(jiǎn)單的方法,可以使用命令:bjam toolset=msvc-9.0 build-type=complete直接指定編譯器以完全模式
10、編譯即可,這樣可以滿足今后的一切使用場(chǎng)合,但同時(shí)帶來的后果是:1、占用3G以上的硬盤空間2、占用若干小時(shí)的編譯時(shí)間3、頭文件和庫(kù)文件存放于C:Boost(個(gè)人非常反感)4、生成的很多文件可以永遠(yuǎn)也用不上四、配置include目錄:E:SDKboost_1_39_0library目錄:E:SDKboost_1_39_0vc9lib添加到IDE相應(yīng)的路徑下面即可。五、使用使用舉例:#include此時(shí),不用包含庫(kù)文件,boost的auto-link機(jī)制將會(huì)自動(dòng)幫我們包含對(duì)應(yīng)的靜態(tài)lib。也就是說,boost默認(rèn)是以靜態(tài)方式鏈接的,這樣我們的工程屬性最好也設(shè)為Multi-threaded (Debu
11、g)。如果想使用dll動(dòng)態(tài)方式鏈接,需要預(yù)先定義宏:#define BOOST_ALL_DYN_LINK同樣,此時(shí)boost也會(huì)默認(rèn)幫我們包含對(duì)應(yīng)的lib。如果不想使用boost提供的auto-link機(jī)制,或者對(duì)它的自動(dòng)鏈接不太放心的話(其實(shí)大可不必?fù)?dān)心),可以預(yù)先定義宏:#define BOOST_ALL_NO_LIB然后使用以下方法鏈接:#pragma comment(lib, “boost_thread-vc90-mt-1_39.lib”)或#pragma comment(lib, “boost_thread-vc90-mt.lib”)這兩個(gè)lib其實(shí)是一樣的,實(shí)在不明白boost編譯時(shí)為什么每個(gè)庫(kù)都要復(fù)制一份,難道是因?yàn)楹笳咴谏?jí)boost版本后不用改代碼?新濠天地娛樂場(chǎng)66 另外還有一個(gè)比較有用的宏:#define BOOST_LIB_DIAGNOSTIC它可以讓VC在編譯時(shí)的output窗口中輸出程序具體鏈接了哪些boost庫(kù)以及鏈接順序。關(guān)于boo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 17855-2:2024 EN Plastics - Polyethylene (PE) moulding and extrusion materials - Part 2: Preparation of test specimens and determination of properties
- 房屋抵押合同撰寫指南
- 個(gè)人汽車融資保證合同樣本
- 2024年國(guó)家救災(zāi)帳篷政府采購(gòu)合同
- 合伙承包道路建設(shè)協(xié)議
- 2024年勞動(dòng)崗位合同
- 2024年苗圃買賣合同書范文
- 2024屆畢業(yè)生民事調(diào)解協(xié)議書編寫要點(diǎn)
- 論壇合作協(xié)議書范本
- 商業(yè)店鋪裝修貸款協(xié)議
- 架線工程強(qiáng)制性條文執(zhí)行記錄
- 傳媒公司簽約藝人合同
- 資金集中管理五大模式
- 2023年FURUNOECDISMultipleChoiceTest古野電子海圖題庫(kù)測(cè)試題
- GB/T 28708-2012管道工程用無縫及焊接鋼管尺寸選用規(guī)定
- 青少年成才優(yōu)秀家庭教育-感恩教育主題班會(huì)
- 企業(yè)新聞宣傳工作經(jīng)驗(yàn)分享課件
- 閱讀理解中句子賞析的方法-課件
- 2023年黑龍江交易集團(tuán)有限公司招聘筆試題庫(kù)及答案解析
- 景觀小品的設(shè)計(jì)課件
- 商務(wù)禮儀說課
評(píng)論
0/150
提交評(píng)論