一.下载资源 boost_1_52_0.zip (http://www./users/download/) icu4c-3_8_1-src.zip (http://www./download/3.8.html) python-2.7.3.msi (http://www./) zlib-1.2.7.zip (http://www./) bzip2-1.0.6.tar.gz ( http://www./downloads.html ) 二。准备工作 编译boost库之前,需要做一些准备工作。下载一些Open Source的包,来支持boost特定库的需要。 1. ICU ICU提供了unicode和国际化支持,目前版本是4.8.1。我用的版本是3.8.1。ICU的主页是http://www./。 (1). 下载 可以从http:///projects/icu/files/下载源代码版本。4.8.1是要用VS2010做转换的,4.4.2和3.8.1是要用VS2008做转换。 (2). 编译 ICU的编译比较简单,打开ICU源代码目录下的source\allinone\allinone.sln,3.8.1需要转换到VS2008格式,直接转换即可。然后,选择release,Rebuild Solution即可。 (3). 测试 将编译出来的bin目录加入到系统的PATH目录中去。然后,重新打开allinone.sln工程。 需要通过测试的项目 1. cintltst项目 2. intltest项目 3. iotest 分别设置成启动项目,运行即可。 2. bzip bzip的主页是 http://www./,从http://www./downloads.html下面下载源代码包即可,boost直接使用源代码来进行编译。 3. zlib zlib的主页是http://www./,http:///projects/gnuwin32/files/zlib/从该网页下面下载源代码包即可,boost直接使用源代码来进行编译。 4. python python的主页是http://www./,下载python的2.5.2版本,安装即可。boost默认是会编译python,并且会自动寻找python的安装目录。 三。编译 到开始菜单的VS菜单项下,启动Visual Studio 2008(2010) Command Prompt,以下编译步骤均假定直接在该工具下进行编译。 1. 编译jam 运行bootstrap.bat批处理文件,得到bjam.exe; 2. 编译boost 鉴于参考2下使用build-type有问题,可以使用以下命令来分别编译dll版本和lib版本。下面是一个示例脚本的例子,其中的目录需要替换: 新建build.bat,脚本内容如下。放在boost根目录下,点击运行 (注:1.替换相应路径;2. 因为是完全编译,时间可能有点长,大家耐心等待。) 01 | REM used with iostream library |
02 | REM D:\boost\boost_1_52_0\libs\iostreams\doc\installation.html |
03 | set BZIP2_SOURCE= "D:\boost\bzip2-1.0.6" |
04 | set ZLIB_SOURCE= "D:\boost\zlib-1.2.7" |
06 | REM used with regex library with unicode support |
07 | set ICU_PATH= "D:\boost\icu" |
09 | bjam --toolset=msvc --stagedir=D:\boost\boost_1_52_0 --builddir=./ address-model=32 link=shared runtime-link=shared threading=multi stage debug release |
11 | bjam --toolset=msvc --stagedir=D:\boost\boost_1_52_0 --builddir=./ address-model=32 link= static runtime-link=shared threading=multi stage debug release |
编译好的文件放置在boost根目录的lib目录下(G:\boost_lib\boost_1_52_0\lib ),在boost根目录下的bin.v2目录是中间文件,编译后删除即可。 【注:如果仅需要使用boost的部分功能,就不需要完整编译, 例如:仅安装正则表达式库请参考 正则表达式 boost regexp的安装】 四、 在工程中添加boost 1.临时方案,只更改一个项目。 项目–>属性,添加包含文件和库文件,如图:
在做如下操作: 2.全局更改 网上有一种方法: 添加包含文件:tools->options->project and solutions VC++目录(此处填写boost根目录,即 D:\boost_lib\boost_1_52_0 ) 添加库文件:tools->options->project and solutions VC++目录(此处填写boost库目录,D:\boost_lib\boost_1_52_0\lib) 但是显示vc++目录已被否决。 解决方案: 视图->属性管理
这里有针对Debug和Release的设置。根据个人需求来设置。 右击Microsoft.Cpp.Win32.user打开属性: 添加包含文件和库文件.
五、测试: 01 | #include <boost/regex.hpp> |
07 | boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" ); |
11 | std::getline(std::cin, line); |
12 | boost::smatch matches; |
13 | if (boost::regex_match(line, matches, pat)) |
14 | std::cout << matches[2] << std::endl; |
16 | std::cout << "no" <<std::endl; |
六、参考文章 1. vs2005下安装boost http://hi.baidu.com/vivid217/blog/item/8e484eafd3b52ff8faed5063.html 2. boost1.35.0编译日志 http://www./chemz/archive/2008/03/31/45822.html 3.http://blog.csdn.net/a06062125/article/details/7773976 4.http:///35cf4de6f1c011e08e40000d601c5586/3ca9f530f1c011e08e40000d601c5586/
|