一。下載
boost庫2008年3月底發布了1.35.0版本,包括了12個新的庫和若干對于新庫的修正。請參見http://www.boost.org/users/news/version_1_35_0來獲取詳細的更新信息。
最大的喜訊就是提供了對于Visual Studio 2008編譯器的支持(1.34也可以,但是需要手工修改)。
下載地址:
http://www.boost.org/users/download/
boost JAM可以不用下載,源代碼已經包括在boost庫中,可以直接來編譯出來。
二。準備工作
編譯boost庫之前,需要做一些準備工作。下載一些Open Source的包,來支持boost特定庫的需要。
1. ICU
ICU提供了unicode和國際化支持,目前的版本是3.8.1。ICU的主頁是http://www.icu-project.org/。
(1). 下載
可以從http://www.icu-project.org/download/3.8.html下載源代碼版本和使用VS2005編譯的版本。推薦下載源代碼版本自己進行編譯,以避免依賴于VS2005的運行時庫。
(2). 編譯
ICU的編譯比較簡單,打開ICU源代碼目錄下的source\allinone\allinone.sln,需要轉換到VS2008格式,直接轉換即可。然后,選擇release,Rebuild Solution即可。
(3). 測試
將編譯出來的bin目錄加入到系統的PATH目錄中去。然后,重新打開allinone.sln工程。
需要通過測試的項目
- cintltst項目
- intltest項目
- iotest
分別設置成啟動項目,運行即可。
2. bzip
bzip的主頁是 http://www.bzip.org/,從http://www.bzip.org/downloads.html下面下載源代碼包即可,boost直接使用源代碼來進行編譯。
3. zlib
zlib的主頁是http://www.zlib.net/,從該網頁下面下載源代碼包即可,boost直接使用源代碼來進行編譯。
4. python
python的主頁是http://www.python.org/,下載python的2.5.2版本,安裝即可。boost默認是會編譯python,并且會自動尋找python的安裝目錄。
三。編譯
到開始菜單的VS2008菜單項下,啟動Visual Studio 2008 Command Prompt,以下編譯步驟均假定直接在該工具下進行編譯。
1. 編譯jam
到tools\jam目錄下面運行build_dist.bat,編譯好的放在tools\jam\stage\boost-jam-3.1.16-1-ntx86目錄下,將bjam.exe復制到boost的根目錄。
2. 編譯boost
鑒于參考2下使用build-type有問題,可以使用以下命令來分別編譯dll版本和lib版本。下面是一個示例腳本的例子,其中的目錄需要替換:
1
REM used with iostream library
2
REM boost_1_35_0\libs\iostreams\doc\installation.html
3
4
set BZIP2_SOURCE="E:\library\bzip2-1.0.4"
5
set ZLIB_SOURCE="E:\library\zlib123"
6
7
REM used with regex library with unicode support
8
set ICU_PATH="E:\library\icu"
9
10
REM DLL版本
11
bjam --toolset=msvc --stagedir=./lib_x86 --builddir=./ address-model=32 link=shared runtime-link=shared threading=multi stage debug release
12
13
REM lib版本
14
bjam --toolset=msvc --stagedir=./lib_x86 --builddir=./ address-model=32 link=static runtime-link=shared threading=multi stage debug release
15
編譯好的文件放置在boost根目錄的lib_x86\lib目錄下,在boost根目錄下的bin.v2目錄是中間文件,編譯后刪除即可。
如果需要去掉編譯過程中的一些warning,可以在tools\build\v2的user-config.jam文件中加入以下這一行:
四。參考文章
1. vs2005下安裝boost
http://hi.baidu.com/vivid217/blog/item/8e484eafd3b52ff8faed5063.html
2. boost1.35.0編譯日志
http://www.shnenglu.com/chemz/archive/2008/03/31/45822.html