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

            網上有很多有關boost的編譯,不過大部分都需要下載bjam獲取什么stlport的。其實boost編譯非常簡單,直接下載源碼就可以進行編譯了。
            下面我來說說我在XP下使用VC10 和 VC9 編譯boost的心得。

            1首先進入命令行,不過需要注意的是通過vs2010自帶的命令提示行進入。如下圖所示
            2 進入命令,進入boost的目錄,運行 bootstrap.bat,1分鐘以后,你就發在在boost的目錄中就多了一個文件“bjam.exe”。
            3 編譯出bjam.exe 后剩下的工作我們就開始編譯boost了。

            一下轉自:http://blog.csdn.net/zhuky/article/details/5349703
            三、編譯
            接下來就是最重要的編譯步驟了。需要打開命令提示符(cmd.exe)窗口并執行bjam,可以使用--help參數來查看命令幫助。這里詳細講解一下bjam的命令行參數,因為它非常重要。首先,它涉及到編程環境的搭建,你需要根據自己今后具體的使用環境來選擇合適的命令行參數;其次,它影響到你的硬盤空間,完全編譯的話據說在3G以上,如果你同時擁有2個以上的IDE(如VC6和VC9共存)而且都要用到boost,那么占用多少硬盤就自己算吧……雖說如今大家的硬盤空間都不成問題,但就像本人一樣崇尚合理利用資源不習慣鋪張浪費提倡節儉的童子應該大有人在。綜合以上兩點因素,本人使用的bjam命令如下:


            bjam stage --toolset=msvc-9.0 --without-python --without-mpi --without-wave --without-graph --without-math --without-serialization --stagedir="E:/SDK/boost_1_39_0/bin/vc9" link=static runtime-link=shared threading=multi debug release
             
            下面詳細解釋一下每個參數的含義,請務必仔細看完:
            stage/install:stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。本人推薦使用stage,因為install生成的這個include目錄實際就是boost安裝包解壓縮后的boost目錄(E:/SDK/boost_1_39_0/boost,只比include目錄多幾個非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節省編譯時間,也節省硬盤空間。


            toolset:指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。


            without/with:選擇不編譯/編譯哪些庫。因為python、mpi等庫我都用不著,所以排除之。另外,wave、graph、math、regex、test、program_options、serialization、signals這幾個庫編出的靜態lib都非常大,所以不需要的也可以without掉。這可以根據各人需要選擇,默認是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語言支持的,應該到python官方主頁http://www.python.org/下載安裝。


            stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,如VS2008對應的是E:/SDK/boost_1_39_0/bin/vc9,VC6對應的是E:/SDK/boost_1_39_0/bin/vc6,否則都生成到一個目錄下面,難以管理。如果使用了install參數,那么還將生成頭文件目錄,vc9對應的就是E:/SDK/boost_1_39_0/bin/vc9/include/boost-1_39/boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。


            build-dir:編譯生成的中間文件的路徑。這個本人這里沒用到,默認就在根目錄(E:/SDK/boost_1_39_0)下,目錄名為bin.v2,等編譯完成后可將這個目錄全部刪除(沒用了),所以不需要去設置。


            link:生成動態鏈接庫/靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因為最終發布程序帶著boost的dll感覺會比較累贅。


            runtime-link:動態/靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式,各人可以根據自己的需要選擇編譯。一般link只選static的話,只需要編譯2種組合即可,即link=static runtime-link=shared和link=static runtime-link=static。


            threading:單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫,可以使用single方式。


            debug/release:編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。


            本人按以上方式分別編譯了靜態鏈接和動態鏈接兩個版本后,整個E:/SDK/boost_1_39_0目錄(包括安裝包解壓縮文件和編譯生成的庫文件)只有不到500MB。事實上編譯完成后安裝包解壓縮文件除了boost目錄之外其他目錄和文件已經可以刪除了,這樣還可以騰出150MB的空間來。不過我又研究了一下,其實libs這個目錄也很有用,它提供了所有Boost類的使用范例,平時可以作為參考;另外doc目錄是一個完整的boost使用幫助文檔,當然最好也不要刪了。這樣剩下的幾個目錄和文件加起來也就十多兆,索性都給它們留一條生路吧。


            呵呵,一個完整而又完美的boost目錄就此誕生了。


            如果圖省事,不想了解這么多,那么有簡單的方法,可以使用命令:


            bjam --toolset=msvc-9.0 --build-type=complete


            直接指定編譯器以完全模式編譯即可,這樣可以滿足今后的一切使用場合,但同時帶來的后果是:
            1、占用3G以上的硬盤空間
            2、占用若干小時的編譯時間
            3、頭文件和庫文件存放于C:/Boost(個人非常反感)

            4、生成的很多文件可以永遠也用不上
            四、配置
            include目錄:E:/SDK/boost_1_39_0
            library目錄:E:/SDK/boost_1_39_0/bin/vc9
            添加到IDE相應的路徑下面即可。


             

            posted on 2012-03-09 14:57 arrow8209 閱讀(632) 評論(0)  編輯 收藏 引用

            統計

            中文字幕无码久久久| 97久久国产综合精品女不卡 | 色综合久久久久久久久五月| 97香蕉久久夜色精品国产| 性欧美大战久久久久久久久| 精品久久久久久中文字幕人妻最新| 久久久久高潮毛片免费全部播放| 国产精品毛片久久久久久久| 国产精品成人精品久久久| 亚洲午夜精品久久久久久浪潮| 色婷婷综合久久久久中文一区二区| 69久久夜色精品国产69| 久久激情五月丁香伊人| 无码人妻精品一区二区三区久久久 | 99精品久久久久久久婷婷| 欧美国产精品久久高清| 精品熟女少妇a∨免费久久| 久久久精品日本一区二区三区| 久久人人爽爽爽人久久久| 久久人搡人人玩人妻精品首页| 久久久一本精品99久久精品66| 久久久精品视频免费观看| 久久国产乱子伦免费精品| 亚洲国产成人久久综合一区77| 精品午夜久久福利大片| 中文字幕热久久久久久久| 久久人妻少妇嫩草AV无码蜜桃 | 欧美日韩久久中文字幕| 精品国产乱码久久久久久浪潮 | 久久99精品国产99久久6| 久久久九九有精品国产| 久久狠狠高潮亚洲精品| 漂亮人妻被中出中文字幕久久 | 亚洲国产高清精品线久久| 草草久久久无码国产专区| 国内精品久久久久影院优| 日本人妻丰满熟妇久久久久久| 2021国产精品午夜久久| 久久精品国产欧美日韩99热| 久久人妻少妇嫩草AV蜜桃| 欧美与黑人午夜性猛交久久久|