vs2010 boost库的编译与安装

编译过程:

1.首先去http://www.boost.org/users/download/下载boost的源码;

2.然后将源码放入一个文件加内,比如c:\lib\boost\boost_1_59_0\下

3.进入Visual Studio x64命令提示(2010)窗口,cd到c:\lib\boost\boost_1_59_0\中

4.执行命令:

bootstrap

b2--toolset=msvc-10.0 --build-type=complete stage

 The first command prepares the Boost.Build system for use. The second command invokes Boost.Build to build the separately-compiled Boost libraries.

我在win8环境+vs2010下编译64位boost库,用b2命令然后在上面命令的基础上添加参数address-model=64,但没有编译成功,后来用如下方法编译成功了:

第一步,执行bootstrap.bat,将会在同目录下生成bjam.exe.后面的编译将依赖于bjam.exe

注:bjam.exe --show-libraries可以看到可以编译的库的名称,根据需要进行适当的挑选,也可以全部编译,不过会需要较长时间,建议选择编译自已需要的

第二步,开始编译
bjam.exe toolset=msvc-10.0 --build-type=complete address-model=64 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --stagedir="E:\try\boost_1_44_0\lib64" stage

bjam.exe toolset=msvc-10.0 --build-type=complete address-model=64 --with-serialization --with-system --with-date_time --with-regex --with-filesystem --prefix="E:\try\boost_1_44_0\lib64" install

说明:以前只编译了serialization/system/date_time/regex/filesystem五个库

注:
stage/install: stage表示只生成库(dll和lib),生成的文件放到stage的子目录下,由参数--stagedir可指定路径;install还会生成包含头文件的include目录,生成的文件目录由参数--prefix指定

address-model:生成32/64位的库,不使用时使用默认,生成32位的库文件,若要生成64位的库需显示指定address-model=64

toolset:指定C++的编译器[ VS2008对应--toolset=msvc-9.0,vs2010对应--toolset=msvc-10.0 ],其它的可查找相关的参考说明

--build-type: 编译类型,生成何种方式的库,发布版/调试版等,建议选择complete,生成调试版和发布版的,不过所需的时间稍长一些

link:创建动态[  link=shared ]还是静态[link=static]的库.

runtime-link:指定C++运行时库是静态[ runtime-link=static ]链接还是动态[ runtime-link=shared ]链接

threading:单[  threading=single ]/多线程[  threading=multi ]编译。

without/with:选择不编译/编译哪些库

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    显示需要编译的库名称

vs2010C++工程安装boost库:

在2010环境下这步,在项目-->右键属性-->VC++ Directories 中去填写对应路径

附加包含目录为:c:\lib\boost\boost_1_59_0\;附加库目录为:c:\lib\boost\boost_1_59_0\stage\lib

测试代码:

 #include<iostream>
#include <boost/regex.hpp>
using namespace std;

int main()
{
    // 3 digits, a word, any character, 2 digits or "N/A", 
    // a space, then the first word again
    boost::regex reg("\\d{3}([a-zA-Z]+).(\\d{2}|N/A)\\s\\1");

    std::string correct="123Hello N/A Hello";
    std::string incorrect="123Hello 12 hello";

    assert(boost::regex_match(correct,reg)==true);
    assert(boost::regex_match(incorrect,reg)==false);
    cout<<"Hello Boost !"<<endl;
}

如果输出结果为:Hello Boost ! 则表明boost库在vs2010下配置成功。

你可能感兴趣的:(vs2010 boost库的编译与安装)