<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline; text-underline:single;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
编译boost库之前,需要做一些准备工作。下载一些Open Source的包,来支持boost特定库的需要
boost库需要的额外库有:ICU、bzip、zlib123和python库
ICU库:
ICU提供了unicode和国际化支持,目前的版本是4.0.1。ICU的主页是:http://www.icu-project.org/,推荐下载源代码版本自己进行编译,以避免依赖于VS2008的运行时库。
编译ICU库:ICU的编译比较简单,打开ICU源代码目录下的source/allinone/allinone.sln,需要转换到VS2008格式,直接转换即可。然后,选择release,Rebuild Solution即可。
测试ICU库:将编译出来的bin目录加入到系统的PATH目录中去。然后,重新打开allinone.sln工程,需要通过测试的项目: cintltst项目; intltest项目; iotest分别设置成启动项目,运行即可。
ICU库主要使boost库中regex支持unicode
bzip库:
bzip的主页是 http://www.bzip.org/,从http://www.bzip.org/downloads.html下面下载源代码包即可,boost直接使用源代码来进行编译。
zlib库:
zlib的主页是http://www.zlib.net/,从该网页下面下载源代码包即可,boost直接使用源代码来进行编译。
python库
python的主页是http://www.python.org/,下载python的2.5.2版本,安装即可。boost默认是会编译python,并且会自动寻找python的安装目录。可以通过编译选项不编译python。
编译boost库:
首先在www.boost.org下载jam和boost最新的源代码(本文为jam_version=3.1.17 boost_version=1.39.0),将boost源代码解压缩到x:/boost/目录下,将jam源代码解压到x:/boost/jam/目录下。
然后打开Visual Studio 2008 命令提示来到x盘下进入jam目录,下面有个build.bat文件。
在命令行输入build msvc 9.0,执行完成后会在该目录下生成一个bin.ntx86的目录,将目录中的bjam.exe拷贝到x:/boost/目录下.
现在将命令行定位到x:/boost编译时通过设置参数可以指定编译器和编译版本以及存放路径,这里没有编译python.
推荐采用如下的编译:
bjam -sICU_PATH=E:/Source/CommonLibs/icu -sBZIP2_SOURCE=E:/Source/CommonLibs/bzip2 -sZLIB_SOURCE=E:/Source/CommonLibs/zlib123 --without-python --without-mpi --toolset=msvc-9.0 address-model=32 link=static runtime-link=shared threading=multi --prefix=E:/Source/CommonLibs/BoostLib debug release stage
该编译将会生成boost的静态库,目录需要根据具体情况进行调整。
在编译过程中会自动生成三个文件夹,按生成先后顺序分别是bin.v2,lib其中bin.v2目录在X:/boost中,是编译时存放lib,dll和 obj文件的地方,lib目录在X:/boost/stage中,是存放编译完成后的所有lib,dll文件的目录。如果空间十分紧张,可以删除 bin.v2目录
最后配置项目环境
include: Tools-->Options-->Projects and Solutions-->VC++ Directories
在Show Directories for 选择Include files 添加路径:X:/boost
Linker:Tools-->Options-->Projects and Solutions-->VC++ Directories
在Show Directories for 选择Include files 添加路径:X:/boost/stage/lib
最后在boost库在vs2008使用中要注意MDd 与 MTd 编译选项的选择。
注:去掉编译警告的办法
如果需要去掉编译过程中的一些warning,可以在x:/boost/tools/build/v2的user-config.jam文件中加入以下这一行
using msvc : 9.0 : : /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 ;