windows下編譯Boost


  • 當前boost最新版本為1.55,下載地址: http://sourceforge.net/projects/boost/files/boost/1.55.0/

    或者從官網(www.boost.org)下載最新版的BOOST源碼,如圖所示.

    經過測試,2012和2013步驟相同,這里以2012為例。

    win7 vs2012/2013 編譯boost 1.55

  •  打開VS2012 Native Tools Command,可以從開始--Microsoft Visual Studio 2012找到:
    win7 vs2012/2013 編譯boost 1.55
     
     
     
  •  將下載的 boost_1_55_0.zip 解壓在F盤,例如 F:\boost_1_53_0

    執行bootstrap.bat,如圖綠框所示:

    win7 vs2012/2013 編譯boost 1.55
     
  •  編譯,可以簡單的使用b2 install,也可以指定存放目錄,或者尋找網上其它幫助文章。

         查看幫助可以輸入:.\b2 --help

         比如要開啟多線程編譯:b2 install threading=multi

         設置生成的是debug或者release

         備注:如果是使用VS2013,請指定輸出庫類型,否則會缺一個lib文件:

         "無法打開文件 libboost_thread_vc120_mt_sgd-1_55.lib"。

          在2013時,我是使用下面的語句進行編譯:

    // 如果要獲取動態庫:

    bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release  

    // 如果是要獲取靜態庫:

    bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release  

        其中,注意修改--toolset=msvc-12.0,將12.0修改成對應的vs版本號,12.0是VS2013的版本號。

        目標地址也要修改成你所需的。

        注意,不要漏了install,它會幫你把頭文件集合到一個文件夾中。

          編譯過程有一個復制過程,編譯需要的時間比較長,本次編譯過程中,會在C盤根目錄下生成一個boost文件夾,然后包含include和lib文件夾,這就是我們將要使用的頭文件和庫文件。

    win7 vs2012/2013 編譯boost 1.55
     
     
  • 編譯完了我們就使用編譯在C盤中的文件。我將它們拷貝到了F盤,

    下圖三個文件分別是:   1) 將要使用的boost頭文件和庫文件。   2) 解壓出的boost文件夾,就是使用這個文件夾來進行 1 -- 3步驟的。   3)BoostTest 測試工程。

    需要簡單的配置兩個地方:

    這里使用絕對路徑,也可以配置環境來使用。

    win7 vs2012/2013 編譯boost 1.55
    win7 vs2012/2013 編譯boost 1.55

    也可以參考阿清給我的文檔:

    添加boost庫
    Boost是一個和STL類似的標准庫,但它擴充了STL使得泛型的優點發揮到最佳,因此現在Boost比STL更為實用。
    Step1:下載Boost庫,這里我選擇下載boost_1_55_0.zip

    Step2:
    解壓boost文件到本地目錄(如G:\boost_1_55_0),發現解壓后的文件中有一個bootstrap.bat文件。然后以管理員身份打開cmd窗口,具體命令bootstrap.bat或者使用對應的VS工具,比如VS2012 x64 Native Tools Command Prompt工具打開cmd窗口,具體命令bootstrap.bat
    ,上述命令執行完畢后可以發現G:\boost_1_55_0下新生成了一個bjam.exe文件

    Step3:
    對於額外的一些依賴,比如boost.nowide 官網:http://cppcms.com/files/nowide/html/index.html
    下載對應的Standard Version: boost_nowide.zip 包后,再合並到標准的boost文件中

    Step4:
    如果需要編譯zlib,則需要先去http://www.zlib.net/下載對應的源碼包,解壓到某一路徑
    比如boost/otherLib/然后
    命令行下設置環境變量 set ZLIB_SOURCE="D:\dyq\P\boost_1_59_0\otherLib\zlib-1.2.3"

    Step5:
    運行bjam.exe

    Step6:
    編譯32位靜態庫:
    b2 link=static runtime-link=static threading=multi debug release
    編譯64位靜態mt庫:
    b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=static threading=multi debug release

    b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug release

    編譯64位靜態md庫:
    b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug release

    Step7:
    添加boostest工程的包含目錄和庫目錄
    包含目錄添加 G:\boost_1_55_0
    庫目錄添加 G:\boost_1_55_0\stage\lib


    注意:
    程序的運行時(多線程/多線程DLL)要與庫保持一致,否則鏈接會報找不到文件的錯誤

     

  • 免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM