• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Windows下如何編譯使用boost

            原文地址 原文中存在一些錯(cuò)誤,并且使用的是1.49。(也許是1.49本身的問題,未深究)

            最近在看boost::asio的東西,所以必須要用到boost庫(kù),下載了一個(gè),所以與大家分享下boost庫(kù)的編譯方法。

            本方法應(yīng)該適用于boost的任何版本,應(yīng)該適用于任何C++編譯器(VC6.0可能對(duì)某些庫(kù)不支持,因?yàn)槟0宓脑?,因?yàn)長(zhǎng)inux沒怎么用,所以只是分享下windows上的編譯方法。

            1.下載boost

            從boost官網(wǎng)( http://www.boost.org )上下載最新的boost版本,現(xiàn)在最新是1.62版本,解壓到自定義目錄(為了后面好說(shuō)明,這里假設(shè)為boost_1_62_0)

            2.編譯安裝boost

            boost_1_62_0目錄下會(huì)有一個(gè)bootstrap.bat批處理,可以直接點(diǎn)擊它,會(huì)在 boost_1_62_0\tools\build\v2 文件夾下生成兩個(gè)exe:b2.exe和bjam.exe,并且自動(dòng)拷貝這兩個(gè)文件到boost_1_62_0目錄下。從cmd命令進(jìn)入到boost_1_62_0路徑下,如果你不知道如何編譯,可以輸入–help查看命令行幫助。

            輸入如下命令:

            b2 toolset=msvc-10.0 --layout=versioned architecture=x86 address-model=64
            link=static variant=debug,release threading=multi runtime-link=static 
            --without-python --without-mpi --without-wave --without-graph 
            --without-math --without-serialization stage

            使用不同的命令對(duì)你使用boost也會(huì)產(chǎn)生很大的影響,因?yàn)镃PU速度和硬盤現(xiàn)在都已經(jīng)不是大問題了,所以本例中選擇了除了不必要庫(kù)的完全編譯,當(dāng)然了,你時(shí)間夠,硬盤夠,可以完全編譯

            b2 --toolset=msvc-10.0 --build-type=complete

            解釋完以上的命令后,再說(shuō)完全編譯的后果。

            1.toolset:表示編譯器工具,我安裝的是VS2010,所以是msvc-10.0;
                                具體的版本對(duì)應(yīng)關(guān)系,可以查看boost_1_62_0\tools\build\src\tools\msvc.jam中的# Version aliases節(jié)
                                # Version aliases.
                                .version-alias-6 = 6.0 ;
                                .version-alias-6.5 = 6.0 ;
                                .version-alias-7 = 7.0 ;
                                .version-alias-8 = 8.0 ;
                                .version-alias-9 = 9.0 ;
                                .version-alias-10 = 10.0 ;
                                .version-alias-11 = 11.0 ;
                                .version-alias-12 = 12.0 ;
                                .version-alias-14 = 14.0 ;

            2.architecture:表示架構(gòu),也就是你的CPU架構(gòu),x86,x64,因?yàn)槲野惭b的是win7 32位,所以使用了x86的架構(gòu)

            3.instruction-set:表示指令集,依然是8086指令集

            4.address-model:表示地址長(zhǎng)度為32位

            5.link:表示生成動(dòng)態(tài)/靜態(tài)鏈接庫(kù),動(dòng)態(tài)鏈接庫(kù)是shared,靜態(tài)鏈接庫(kù)是static,一般都會(huì)編譯成靜態(tài)庫(kù),因?yàn)榻o出程序的時(shí)候打包boost的庫(kù)會(huì)非常龐大

            6.variant:表示生成的Debug或者release版本,一般情況下會(huì)兩種版本都會(huì)編譯出來(lái)的

            7.threading:表示單/多線程編譯,一般我們的程序都會(huì)用到多線程,所以選擇了multi

            8.runtime-link:表示動(dòng)態(tài)/靜態(tài)鏈接C/C++運(yùn)行時(shí)庫(kù)(C/C++ Runtime),我們選擇了動(dòng)態(tài)鏈接

            9.without/with:表示不需要編譯/需要編譯哪些庫(kù),一些自己不用的庫(kù)可以無(wú)需編譯

            10.stage/install:stage表示只生成庫(kù)文件(DLL和Lib),install還會(huì)生成包含頭文件的include目錄,推薦使用stage,因?yàn)閎oost_1_62_0\boost中就是boost庫(kù)完整的頭文件,所以無(wú)需再拷貝一份出來(lái)。編譯出來(lái)的庫(kù)會(huì)放在stage文件夾中

            這樣一份完整的boost庫(kù)就生成了,剩下就是直接使用到項(xiàng)目中了。

            上面的編譯指令可以存成一個(gè)批處理,這樣進(jìn)入到boost_1_62_0目錄后,只需要執(zhí)行批處理就可以了,更方便。

            (現(xiàn)在看到為什么不推薦使用完全編譯了吧,因?yàn)橥耆幾g會(huì)編譯出各種組合的所有情況,需要占用更多的空間和時(shí)間,所以建議各位朋友還是放棄了吧)

            使用的時(shí)候可以直接包含到項(xiàng)目中,然后在對(duì)應(yīng)的文件中包含相應(yīng)的頭文件即可,例如

            #include "boost/asio.hpp"

            假如您還嫌上面你的方法太麻煩了,可以使用一個(gè)懶漢專用小工具boost setup,下載地址為http://www.boostpro.com/download/

            這個(gè)工具可以幫你下載并編譯好,你只需要點(diǎn)擊鼠標(biāo)配置下就可以了,一步步操作如下圖:

            boost_1_47_setup_1
            boost_1_47_setup_2
            boost_1_47_setup_3
            boost_1_47_setup_4
            最后點(diǎn)擊Install之后就會(huì)編譯并安裝到你指定的目錄,這個(gè)夠方便吧(不過這個(gè)是下載后編譯,可能會(huì)有點(diǎn)慢)。最后一步就不演示了,因?yàn)槲疫€不想用這種方法。

            以上就是boost在windows環(huán)境下的安裝編譯方法,boost庫(kù)可以說(shuō)是現(xiàn)在最強(qiáng)大的C++類庫(kù)了,你想要的任何功能都有,我認(rèn)為每一個(gè)C/C++程序員都應(yīng)該學(xué)習(xí)的。

            posted on 2016-10-20 08:20 FongLuo 閱讀(6188) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            導(dǎo)航

            常用鏈接

            留言簿

            隨筆分類(11)

            隨筆檔案(79)

            文章檔案(1)

            收藏夾(38)

            學(xué)習(xí)網(wǎng)站

            一般網(wǎng)站

            最新隨筆

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            日韩美女18网站久久精品| 久久精品国产亚洲AV久| 久久精品人人做人人爽97| 日韩人妻无码精品久久久不卡 | 国产99久久九九精品无码| 久久久久99精品成人片三人毛片| 久久精品亚洲乱码伦伦中文| 亚洲愉拍99热成人精品热久久| 国产精品视频久久久| 久久久黄色大片| 久久综合中文字幕| 国产成年无码久久久免费| 国产午夜福利精品久久| 中文字幕无码免费久久| 久久久久人妻一区精品| 97久久久久人妻精品专区| 2021久久精品免费观看| 国产2021久久精品| 国产精品美女久久久久网| 波多野结衣AV无码久久一区| 国产精品一久久香蕉国产线看 | 97精品伊人久久久大香线蕉 | 国产Av激情久久无码天堂| 久久精品国产精品亚洲| 97久久国产亚洲精品超碰热| 久久人人爽人人爽人人片AV不 | 国内精品久久久久影院一蜜桃| 亚洲婷婷国产精品电影人久久| 亚洲国产精品久久66| 97久久国产亚洲精品超碰热 | 中文字幕亚洲综合久久| A狠狠久久蜜臀婷色中文网| 99久久国产宗和精品1上映| 久久亚洲AV无码精品色午夜麻豆 | 久久综合狠狠色综合伊人| 国产精品欧美久久久天天影视| 久久综合给合久久狠狠狠97色69 | 久久精品欧美日韩精品| 狠狠色婷婷久久一区二区| 久久人人爽人人爽人人av东京热| 午夜视频久久久久一区|