天天看點

VC++2010 編譯Boost C++庫

1.下載下傳安裝包boost 1_45_0

   http://sourceforge.net/projects/boost/files/boost/1.48.0/

   選擇下載下傳 windows 或 unix 版本

2.解壓縮到d:\boost目錄下

3.編譯bjam

 

  (1)從vs2010的工具菜單進入指令提示視窗(單擊“開始”按鈕,指向“所有程式”,指向“Microsoft Visual Studio 2010”,指向“Visual studio tools(工具)”,然後單擊“Visual Studio 2010 command prompt(指令提示)”

    (2)cd到d:\boost\boost_1_48_0下執行bootstrap.bat,然後,會在d:\boost\boost_1_48_0\下生成bjam.exe,

    (3)將bjam.exe複制到d:\boost\boost_1_48_0\下。

4.設定編譯環境(加入紅色字型)  

  修改user-config.jam (d:\boost\boost_1_48_0\tools\build\v2\user-config.jam) 的MSVC configuration

  # MSVC configuration

  

  # Configure msvc (default version, searched in standard location

  # and PATH).

  # using msvc : 8.0 ;

   using msvc:10.0:: <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;

5.將目錄cd到d:\boost\boost_1_48_0\下執行

    (1) 編譯boost庫

        bjam --without-python --toolset=msvc-10.0 --build-type=complete --prefix="d:\boost\boost_1_48_0" stage (這一步需要等待很長時間,大概一個小時左右……)

下面詳細解釋一下每個參數的含義:

stage/install:stage 表示隻生成庫(dll和lib),install還會生成包含頭檔案的incl?目錄。本人推薦使用stage,因為install生成的這個include 目錄實際就是boost安裝包解壓縮後的boost目錄(E:\SDK\boost_1_39_0\boost,隻比include目錄多幾個非hpp檔案, 都很小),是以可以直接使用,而且不同的IDE都可以使用同一套頭檔案,這樣既節省編譯時間,也節省硬碟空間。

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

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指定不同的目錄,如VS2010對應的是 E:\boost_1_48_0\bin\vc10,VC6對應的是E:\SDK\boost_1_48_0\bin\vc6,否則都生成到一個 目錄下面,難以管理。如果使用了install參數,那麼還将生成頭檔案目錄,vc9對應的就是E:\SDK\boost_1_48_0\bin\vc9 \incl?\boost-1_48\boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。

build-dir:編譯生成的中間檔案的路徑。這個本人這裡沒用到,預設就在根目錄(E:\boost_1_48_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版本,是以兩個都編譯。

    運作完後(彈出輸入提示符)

    (2) 則安裝,輸入:

       bjam --with-python --toolset=msvc-10.0 --build-type=complete --prefix="d:\boost\boost_1_48_0" install

文章出處:飛諾網(www.diybl.com):http://www.diybl.com/course/3_program/c++/cppjs/20110714/557132.html