编译boost库


 

Boost库的介绍

Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。

1.    Boost库中比较有名的几个库:

2.    Regex,正则表达式库;

3.    Spirit,LL parser framework,用C++代码直接表达EBNF;

4.    Graph,图组件和算法;

5.    Lambda,在调用的地方定义短小匿名的函数对象,很实用的functional功能;

6.    concept check,检查泛型编程中的concept;

7.    Mpl,用模板实现的元编程框架;

8.    Thread,可移植的C++多线程库;

9.    Python,把C++类和函数映射到Python之中;

10.  Pool,内存池管理;

11.  smart_ptr,智能指针

 

Boost库的编译

1.     打开Visual Studio2008 命令提示窗口

2.     进入D: /boost_1_44_0/tools/jam/src

3.     执行 build.bat 会在D:/ boost_1_44_0/tools/jam/src/bin.ntx86 生成 bjam.exe

4.     拷贝bjam.exe 到 D:/ boost_1_44_0 下

5.     进入D:/boost_1_44_0 目录

6.     执行bjam.exe 编译命令,如下:

 

编译所有boost动态库release|debug),包括头文件和库文件

bjam --toolset=msvc-9.0 --prefix=D: /boost_1_44_0/output--without-python --build-type=complete link=shared threading=multi install

 

只编译 release 版本 regex 动态库,包括头文件和库文件

bjam --toolset=msvc-9.0 --prefix=D:/boost_1_44_0/output1--with-regex link=shared threading=multi variant=release runtime-link=shared install

 

只编译 release 版本 regex 动态库,包括库文件

bjam --toolset=msvc-9.0--stagedir=D: /boost_1_44_0/output2

--with-regex link=shared threading=multivariant=release runtime-link=shared stage

注意:Boost源代码所在路径最好全英文,不要有空格、特殊字符、中文等,VS对应的工具集名称如下

VC6.0msvc-6.0

VS2003msvc-7.0

VS2005msvc-8.0

VS2008msvc-9.0

VS2010msvc-10.0

 

7.     设置开发环境

打开VS2008 创建工程, 配置工程属性

设置包含文件目录D:/Develop/BoostlibAndDll/include/boost-1_44_0/boost

设置引用文件目录:F:/Develop/BoostlibAndDll/lib

 

生成库文件名规则

编译成功后,bjam都会给你生成一对一样的导入库文件或者静态库文件(如下),唯一不同的是两个文件名称一个在后面加上了boost版本信息, 为了让用户知道使用的boost的版本信息。

boost_regex-vc90-xxxxx.lib

boost_regex-vc90-xxxxx-1_44.lib

 

bjam编译选项 有4个, 理论上应该有 2*2*2*2 = 16 种配置

link= static| shared

threading=single |multi

variant=release|debug

runtime-link= static |shared

实际使用的多为多线程,所以 threading=multi, 这样剩下的3个选项组成的编译配置就是上面所罗列的,其中静态链接C++标准库的boost动态库这种配置也不存在,所以就只有4种情况。

 

link= static :静态库。 生成的库文件名称以 “lib”开头

link= shared :动态库。生成的库文件名称无“lib”开头

threading=mult : 支持多线程。 生成的库文件名称中包含-mt”

variant=release 生成的库文件名称不包含“-gd”

variant= debug 生成的库文件名称包含“-gd”

runtime-link= static 生成的库文件名称包含“-s”

runtime-link= shared 生成的库文件名称不包含“-s”

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值