分享

在Windows和Visual Studio上安装boost_1_52_0

 oskycar 2012-12-24

一.下载资源

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. 因为是完全编译,时间可能有点长,大家耐心等待。)

01REM used with iostream library
02REM D:\boost\boost_1_52_0\libs\iostreams\doc\installation.html
03set BZIP2_SOURCE="D:\boost\bzip2-1.0.6"
04set ZLIB_SOURCE="D:\boost\zlib-1.2.7"
05 
06REM used with regex library with unicode support
07set ICU_PATH="D:\boost\icu"
08REM DLL版本
09bjam --toolset=msvc --stagedir=D:\boost\boost_1_52_0 --builddir=./ address-model=32 link=shared runtime-link=shared threading=multi stage debug release
10REM lib版本
11bjam --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>
02#include <iostream>
03#include <string>
04int main()
05{
06    std::string line;
07    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
08 
09    while (std::cin)
10    {
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;
15        else
16            std::cout <<"no"<<std::endl;
17    }
18}

六、参考文章
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/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多