歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

boost-1.53源碼編譯

1、下載源碼。首先得明白,boost大多數庫都只有頭文件,鏈接時不需Lib文件;以下庫需要單獨編譯成庫:
 
Boost.Filesystem
 Boost.GraphParallel
 Boost.IOStreams
 Boost.MPI
 Boost.ProgramOptions
 Boost.Python
 Boost.Regex
 Boost.Serialization
 Boost.Signals
 Boost.System
 Boost.Thread
 Boost.Wave
 

下面幾種是可選的:
 
Boost.DateTime
 Boost.Graph
 Boost.Math
 Boost.Random
 Boost.Test
 

2、打開VS2012命令行窗口,進入源碼目錄,首先執行bootstrap.bat
 
3、用bjam或b2編譯。我采用的命令是:
 
b2 --toolset=msvc-11.0 --build-type=complete --build-dir="d:\result" stage
 

 

關於一些選項的解釋:
 
stage/install:stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。
 


toolset:指定編譯器,可選的如borland、gcc、msvc-11.0(VS2012)等。
 
without/with:選擇不編譯/編譯哪些庫。
 
stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。
 
build-dir:編譯生成的中間文件的路徑,編譯完成後可將這個目錄全部刪除。
 
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版本,所以兩個都編譯。
 
由於我沒有指令stagedir,所以默認在源碼目錄下生成stage目錄,大致如下圖:

--------------------------------------分割線 --------------------------------------

Boost程序庫完全開發指南——深入C++“准”標准庫高清PDF版 http://www.linuxidc.com/Linux/2013-07/87574.htm

Ubuntu下編譯安裝boost庫 http://www.linuxidc.com/Linux/2013-07/87573.htm

Ubuntu下編譯boost 1.52b http://www.linuxidc.com/Linux/2013-02/79004.htm

Ubuntu編譯安裝boost並在eclipse C/C++中使用 http://www.linuxidc.com/Linux/2011-04/34790.htm

--------------------------------------分割線 --------------------------------------

注意對某一種類型的庫而言,有2個dll,2個lib,分別來自編譯目錄中的debug\threading-multi和release\threading-multi,還有其它lib,dll並沒有在生成的庫中。其中間編譯目錄result如filesystem庫中文件如下:

上面幾個目錄中的庫,有點亂,暫時還不太清楚具體區別是什麼,有待進一步了解。
 
最後生成的庫可在這裡下載:

------------------------------------------分割線------------------------------------------

FTP地址:ftp://ftp1.linuxidc.com

用戶名:ftp1.linuxidc.com

密碼:www.linuxidc.com

在 2014年LinuxIDC.com\6月\boost-1.53源碼編譯

下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm

------------------------------------------分割線------------------------------------------

4、最後測試驗證
 
需要在工程屬性中添加頭文件目錄路徑和生成庫目錄,但不需要指定庫名,因為有auto-link機制

參考網址:
http://www.linuxidc.com/Linux/2014-06/103498.htm

http://www.linuxidc.com/Linux/2014-06/103499.htm

另外,源碼內部的網頁幫助文檔很值得一看!

Copyright © Linux教程網 All Rights Reserved