歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> boost-1.53源碼編譯

boost-1.53源碼編譯

日期:2017/3/1 9:42:43   编辑:Linux編程

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