• <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

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

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

            本方法應該適用于boost的任何版本,應該適用于任何C++編譯器(VC6.0可能對某些庫不支持,因為模板的原因),因為Linux沒怎么用,所以只是分享下windows上的編譯方法。

            1.下載boost

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

            2.編譯安裝boost

            boost_1_62_0目錄下會有一個bootstrap.bat批處理,可以直接點擊它,會在 boost_1_62_0\tools\build\v2 文件夾下生成兩個exe:b2.exe和bjam.exe,并且自動拷貝這兩個文件到boost_1_62_0目錄下。從cmd命令進入到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

            使用不同的命令對你使用boost也會產生很大的影響,因為CPU速度和硬盤現在都已經不是大問題了,所以本例中選擇了除了不必要庫的完全編譯,當然了,你時間夠,硬盤夠,可以完全編譯

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

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

            1.toolset:表示編譯器工具,我安裝的是VS2010,所以是msvc-10.0;
                                具體的版本對應關系,可以查看boost_1_62_0\tools\build\src\tools\msvc.jam中的# Version aliases節
                                # 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:表示架構,也就是你的CPU架構,x86,x64,因為我安裝的是win7 32位,所以使用了x86的架構

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

            4.address-model:表示地址長度為32位

            5.link:表示生成動態/靜態鏈接庫,動態鏈接庫是shared,靜態鏈接庫是static,一般都會編譯成靜態庫,因為給出程序的時候打包boost的庫會非常龐大

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

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

            8.runtime-link:表示動態/靜態鏈接C/C++運行時庫(C/C++ Runtime),我們選擇了動態鏈接

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

            10.stage/install:stage表示只生成庫文件(DLL和Lib),install還會生成包含頭文件的include目錄,推薦使用stage,因為boost_1_62_0\boost中就是boost庫完整的頭文件,所以無需再拷貝一份出來。編譯出來的庫會放在stage文件夾中

            這樣一份完整的boost庫就生成了,剩下就是直接使用到項目中了。

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

            (現在看到為什么不推薦使用完全編譯了吧,因為完全編譯會編譯出各種組合的所有情況,需要占用更多的空間和時間,所以建議各位朋友還是放棄了吧)

            使用的時候可以直接包含到項目中,然后在對應的文件中包含相應的頭文件即可,例如

            #include "boost/asio.hpp"

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

            這個工具可以幫你下載并編譯好,你只需要點擊鼠標配置下就可以了,一步步操作如下圖:

            boost_1_47_setup_1
            boost_1_47_setup_2
            boost_1_47_setup_3
            boost_1_47_setup_4
            最后點擊Install之后就會編譯并安裝到你指定的目錄,這個夠方便吧(不過這個是下載后編譯,可能會有點慢)。最后一步就不演示了,因為我還不想用這種方法。

            以上就是boost在windows環境下的安裝編譯方法,boost庫可以說是現在最強大的C++類庫了,你想要的任何功能都有,我認為每一個C/C++程序員都應該學習的。

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

            <2016年10月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導航

            常用鏈接

            留言簿

            隨筆分類(11)

            隨筆檔案(79)

            文章檔案(1)

            收藏夾(38)

            學習網站

            一般網站

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            老司机午夜网站国内精品久久久久久久久 | 久久亚洲国产欧洲精品一| 亚洲国产美女精品久久久久∴| 久久精品国产免费观看三人同眠| 热99RE久久精品这里都是精品免费| 伊人久久综合成人网| 久久夜色精品国产亚洲| 久久精品中文字幕有码| 亚洲精品乱码久久久久久蜜桃图片| 久久久久久免费一区二区三区| 国产精品日韩欧美久久综合| 麻豆精品久久久久久久99蜜桃| 久久精品国产亚洲AV无码麻豆 | 人人狠狠综合久久亚洲高清| 亚洲精品无码久久久久AV麻豆| 久久久一本精品99久久精品66| 国产精品综合久久第一页| 麻豆精品久久久久久久99蜜桃| 国产精品内射久久久久欢欢 | 久久亚洲国产成人精品性色| 久久久久女教师免费一区| 99久久国语露脸精品国产| 国产香蕉久久精品综合网| 国产激情久久久久影院| 五月丁香综合激情六月久久| 久久影院亚洲一区| 久久精品无码一区二区三区| 色偷偷88888欧美精品久久久| 久久天天躁狠狠躁夜夜2020| 亚洲伊人久久大香线蕉苏妲己| 久久精品中文字幕无码绿巨人| 7777久久久国产精品消防器材| 久久只这里是精品66| 欧美性猛交xxxx免费看久久久| 99久久99久久精品国产| 狠狠狠色丁香婷婷综合久久俺| 91精品国产91久久综合| 国产精品久久久久久久久免费 | 色综合久久88色综合天天| 久久久噜噜噜久久熟女AA片| 精品国产乱码久久久久软件|