一、Boost庫的介紹
Boost庫是一個經過千錘百煉、可移植、提供源代碼的C++庫,作為標准庫的後備,是C++標准化進程的發動機之一。 Boost庫由C++標准委員會庫工作組成員發起,其中有些內容有望成為下一代C++標准庫內容。在C++社區中影響甚大,其成員已近2000人。 Boost庫為我們帶來了最新、最酷、最實用的技術,是不折不扣的“准”標准庫。
Boost庫中比較有名的幾個庫:
(1)Regex,正則表達式庫;
(2)Spirit,LL parser framework,用C++代碼直接表達EBNF;
(3)Graph,圖組件和算法;
(4)Lambda,在調用的地方定義短小匿名的函數對象,很實用的functional功能;
(5)concept check,檢查泛型編程中的concept;
(6)Mpl,用模板實現的元編程框架;
(7)Thread,可移植的C++多線程庫;
(8)Python,把C++類和函數映射到Python之中;
(9)Pool,內存池管理;
(10)smart_ptr,智能指針。
二、Boost庫的地址
Boost庫的下載地址:http://www.boost.org/users/download/。
三、Boost庫的安裝和編譯
(1)下載Boost庫,如boost_1_42_0.zip。解壓到目錄,如D:\Program Files\Boost\boost_1_42_0。
(2)編譯生成bjam程序。進入控制台(運行--->輸入cmd--->確定),用cd命令進入Boost目錄下的tools\jam\src目錄,如D:\Program Files\Boost\boost_1_42_0\tools\jam\src。使用build命令編譯並生成bjam程序。
- BCC5.5/BCB6/BCB2006/CB2009用戶輸入:build borland。
- VC用戶依據其版本輸入:build vc7或vc8或vc9。
- Mingw用戶輸入:build mingw。
(3)用bjam程序編譯Boost庫。把生成的bjam.exe(bin.ntx86目錄下)拷貝到Boost根目錄下,如D:\Program Files\Boost\boost_1_42_0。進入控制台,用cd命令進入Boost根目錄下,使用bjam編譯Boost,輸入命令:
bjam --toolset=borland(對應BCB)或msvc(對應VC)或gcc(對應Mingw) stage
例如:(第一個是編譯,第二個是安裝)
- bjam --toolset=msvc-8.0 --build-type=complete --prefix="d:\Program Files\Boost\boost_1_42_0" stage
- bjam --toolset=msvc-9.0 --build-type=complete --prefix="d:\boost_1_42_0" install
參數說明:
- toolset:所使用compiler,Visual Studio 2005 為 msvc-8.0。
- build-type:編譯類型,complete表示生成所有的版本(debug,release等)。
- prefix:指定編譯後library的的目錄。
開始編譯Boost庫,編譯時間比較長(大概半小時左右,依編譯器以及選項不同而不同),編譯好的文件會放在.\stage\lib(依--stagedir=命令決定)裡。
(4)添加Boost庫的環境變量。我的電腦--->屬性--->高級--->環境變量,新建系統變量:
BOOST_ROOT=D:\Program Files\Boost\boost_1_42_0
(5)配置Visual Studio 2005的環境。VS2005的Tools--->Options--->Projects and Solutions--->VC++ Directories:
- 在Library files中加入:D:\Program Files\Boost\boost_1_42_0\stage\lib
- 在Include files中加入:D:\Program Files\Boost\boost_1_42_0\boost
表1. bjam的其它參數
--build-dir=<builddir>
編譯的臨時文件會放在builddir裡(編譯完就可以把它刪除了)
--stagedir=<stagedir>
存放編譯後庫文件的路徑,默認是stage
--build-type=complete
編譯所有版本,不然只會編譯一小部分版本(相當於:
variant=release,threading=multi;
link=shared|static;runtime-link=shared)
variant=debug|release
決定編譯什麼版本(Debug or Release)
link=static|shared
決定使用靜態庫還是動態庫
threading=single|multi
決定使用單線程還是多線程庫
runtime-link=static|shared
決定是靜態還是動態鏈接C/C++標准庫
--with-<library>
只編譯指定的庫,如輸入--with-regex就只編譯regex庫了
--show-libraries
顯示需要編譯的庫名稱
Boost 的詳細介紹:請點這裡
Boost 的下載地址:請點這裡
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