【一、Boost库的介绍】
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。
Boost库中比较有名的几个库:
(1)Regex,正则表达式库;
(2)Spirit,LL parser framework,用C++代码直接表达EBNF;
(3)Graph,图组件和算法;
(4)Lambda,在调用的地方定义短小匿名的函数对象,很实用的functional功能;
(5)concept check,检查泛型编程中的concept;
(6)Mpl,用模板实现的元编程框架;
(7)Thread,可移植的C++多线程库;
(8)Python,把C++类和函数映射到Python之中;
(9)Pool,内存池管理;
(10)smart_ptr,智能指针。
【二、VS2008下Boost库的编译】
【Setp1 准备工作】:
(1)Boost 下载可以到官方网站下载:
(2)安装VS2008 IDE
【Setp2 编译Boost】
1.打开Visual Studio 2008 命令提示窗口
2.进入D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/boost_1_44_0/tools/jam/src
3.执行 build.bat 会在D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/boost_1_44_0
/tools/jam/src/bin.ntx86 生成 bjam.exe文件.
4.Copy bjam.exe 文件到 D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/boost_1_44_0 下
6.进入D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/boost_1_44_0 目录
7.执行bjam.exe 编译命令,如下:
(1)编译所有boost动态库 (release|debug),包括头文件和库文件
bjam --toolset=msvc-9.0 --prefix=D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/output --without-python --build-type=complete link=shared threading=multi install
(2)只编译 release 版本 regex 动态库,包括头文件和库文件
bjam --toolset=msvc-9.0 --prefix=D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/output1 --with-regex link=shared threading=multi variant=release runtime-link=shared install
(3)只编译 release 版本 regex 动态库,包括库文件
bjam --toolset=msvc-9.0
--stagedir=D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/output2
--with-regex link=shared threading=multi variant=release runtime-link=shared stage
【注意】: Boost 源代码所在路径最好全英文,不要有空格、特殊字符、中文等
编译要花上30分钟左右(根据PC性能所定), 会在指定生成目录:
D:/05_Computer/04_3rdPatry/02Boost/boost_1_44_0/output下生成对应库文件和头文件。
8.设置开发环境
打开VS2008 创建工程, 配置工程属性
设置包含文件目录F:/Develop/BoostlibAndDll/include/boost-1_37/boost
设置引用文件目录:F:/Develop/BoostlibAndDll/lib
完成后,可以使用。
【三、Linux下Boost库的编译】
1.下载 boost-1_44
2. 将文件解压在/usr/local/目录下
3. 进入/usr/local/boost-1_44_0/ 目录, 在terminal中输入
4.进入/usr/local/boost-1_44_0/ 目录,在terminal中输入
sudo ./b2
5.进入/usr/local/boost-1_44_0/ 目录,在terminal中输入
sudo
两种方法:
(1)修改/etc/profie文件 末尾添加
export BOOST_INCLUDE=/usr/local/include/boost-1_44
export BOOST_LIB=/usr/local/lib
(2)在/etc/profile.d/ 中新建一个shell文件boost.sh
#!/bin/sh
export BOOST_LIB=/usr/local/lib
测试:
test.cpp
[cpp] view plaincopy
#include <boost/lexical_cast.hpp>
#include <iostream>
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
return 0;
}
编译:
g++ test.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -o test./test
输出:
123
123.12