VS2010編譯Boost 1.57 靜態連接庫

http://www.cnblogs.com/cuish/p/4175491.htmlhtml

 

0、前提bootstrap

 

Boost庫版本 1.57.0windows

下載地址多線程

http://www.boost.org/users/history/version_1_57_0.html,選擇windows版工具

 

編譯器:VS2010 測試

 

編譯目標:靜態連接庫ui

C/C++運行庫連接方式: /MT  /MTd   /MD   /MDdatom

 

 

官網給出的windows平臺編譯器測試包括.net

Windows:命令行

GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0

 

Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0

 

 

 

 

 

 

編譯步驟

一、經過VS2010命令提示符工具進入Boost庫根目錄

     好比:H:\Boost\boost_1_57_0

 

二、運行根目錄下批處理文件

     bootstrap.bat

 

三、執行bootstrap.bat後生成4個文件

       b2.exe     bjam.exe   bootstrap.log    project-config.jam

        

 

 

四、用 bjam.exe 來編譯boost庫

     關於 bjam.exe編譯Boost庫的命令行參數的詳細參數能夠看 這個連接

     

     bjam參數簡介

     link參數

     表示生成靜態連接庫 或 生成動態連接庫, link=static表示生成靜態連接庫, link=shared表示生成動態連接庫。

 

     runtime-link參數

     表示使用C/C++運行庫的方式,runtime-link=static表示靜態連接C/C++運行庫,runtime-link=shared標識動態連接C/C++運行庫。 

 

 

      --toolset參數

     表示編譯boost庫的工具集, --toolset=msvc-10.0標識使用VS2010編譯,VS版本和工具集版本的對應關係以下:

     msvc-6.0 :  VC6.0

     msvc-7.0:  VS2003

     msvc-8.0:  VS2005

     msvc-9.0:  VS2008

     msvc-10.0:  VS2010

 

      threading參數

      表示使用多線程庫仍是單線程庫, single表示單線程, multi表示多線程

 

      debug  release標識生成debug或release版本

 

      stage參數

      表示只生成dll 或 lib,而不生成包含include目錄的頭文件目錄,  若是要生成包含頭文件的include目錄,須要使用install參數

 

     --stagedir參數

     表示生成目錄的存放目錄

 

 

     在本文中編譯了boost中爲每一個庫編譯了4中C/C++連接方式的靜態連接庫

     ① /MT   /MTd

      bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:\Boost\boost_1_57_0\bin\vc10"     link=static    runtime-link=static     threading=multi   debug release

 

      生成的庫名字格式

      /MT: libboost_atomic-vc100-mt-s-1_57.lib      /MTd:  libboost_atomic-vc100-mt-sgd-1_57.lib

 

 

     ② /MD   /MDd

      bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:\Boost\boost_1_57_0\bin\vc10"     link=static    runtime-link=shared     threading=multi   debug release

      生成的庫文件名字格式

      /MD:  libboost_atomic-vc100-mt-1_57.lib         /MDd:  libboost_atomic-vc100-mt-gd-1_57.lib

 

 

五、編譯完成

     每類/MT  /MTd  /MD   /MDd的靜態庫各有34個lib。

     編譯完成後,刪除boost目錄的bin.v2臨時目錄。

 

 

六、在VS中使用boost庫     

    項目屬性--VC++目錄--包含目錄,設置爲boost根目錄

    

 

    

 

 

     項目屬性--VC++目錄--庫目錄,設置lib文件目錄

    

     

 

 

七、參考文獻

    VS2010編譯Boost 1.56  

    編譯Boost 詳細步驟 適用 VC6 VS2003 VS2005 VS2008 VS2010  

相關文章
相關標籤/搜索