VS2010編譯Boost 1.57 靜態鏈接庫


 

0、前提

 

Boost庫版本 1.57.0

下載地址

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

 

編譯器:VS2010 

 

編譯目標:靜態鏈接庫

C/C++運行庫鏈接方式: /MT  /MTd   /MD   /MDd

 

 

官網給出的windows平台編譯器測試包括

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

 

 

 

 

 

 

編譯步驟

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

     比如:H:\Boost\boost_1_57_0

 

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

     bootstrap.bat

 

3、執行bootstrap.bat后生成4個文件

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

        

 

 

4、用 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

 

 

5、編譯完成

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

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

 

 

6、在VS中使用boost庫     

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

    

 

    

 

 

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

    

     

 

 

7、參考文獻

    VS2010編譯Boost 1.56  

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

 


免責聲明!

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



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