2012年3月7日星期三

Windows下编译和安装Boost库的指定模块

当然你可以使用www.boostpro.com提供的安装工具来安装,免去以下的步骤。但是那会安装许多不必要的文件,占用大量磁盘空间,有可能使你更迷惑。可参见这篇文章

如果你想了解如何一步步编译安装Boost库,请接着往下读。

一、到官网(www.boost.org)下载最新版Boost并解压到任意目录
先来看一下解压后的目录结构,以$BOOST_ROOT代表你Boost所在的目录

$BOOST_ROOT\ .................boost 根目录
index.htm .........A copy of www.boost.org starts here
boost\ .........................所有的Boost头文件
libs\ ............各种库的测试用例,文档说明。可以在这个文件夹中查看各种库怎么使用
index.html ........库文档从这里开始
algorithm\
any\
array\
…更多的库…
status\ .........................Boost范围测试套件
tools\ ...........一些有用工具, 比如 Boost.Build, quickbook, bcp
more\ ..........................政策等其它文档.
doc\ ...............所有Boost库文档的子集


二、编译需要的库
首先要说明的是大多数Boost库现在已经可以使用了,直接包含boost目录下相应的头文件即可,并不需要编译安装。

以下是必须编译安装的Boost库:


以下库拥有可选的编译组件(也就是说如果你要使用它们中的某些功能,则需要单独编译安装)

  • Boost.DateTime 当你使用它的 to_string/from_string 或者序列化特性, 或者目标平台为 Visual C++ 6.x 或 Borland.

  • Boost.Graph 仅仅当你想 处理 GraphViz 文件.

  • Boost.Math 含有TR1 和 C99 cmath 函数二进制组件.

  • Boost.Random 当你使用 random_device.

  • Boost.Test 可以 “header-only” 或 “separately compiled”
    模式使用, 尽管 对于郑重使用时推荐单独编译.



如果要编译上面的库,首先打开命令行,转到$BOOST_ROOT目录并运行目录下的bootstrap.bat脚本,这个脚本为Boost.Build系统的运行准备环境。

bootstrap.bat

可以看到现在$BOOST_ROOT目录下有b2.exe和bjam.exe两个可执行文件。这两个文件是一样的,只是名字不同,它们可以调用Boost.Build系统来创建上面那些需要编译安装的库。

比如我们想单独编译安装regex库,运行下面的命令即可

bjam stage --with-regex link=static threading=multi runtime-link=static

下面介绍相关参数的含义:
stage 仅创建和安装库文件(不创建头文件),可以用 --stagedir= 选项指定库的安装位置,默认安装在当前目录下的stage文件夹内。
--with- 创建和安装指定的库,如果使用了这个选项,则仅仅指定的库被创建,其它库不被创建。如果不指定这个选项,默认创建所有需要编译安装的库。
link=static指定生成静态regex库
threading=multi指定生成多线程库
runtime-link=static指定链接静态C和C++ 运行库

其他选项可参见这篇文章

三、配置开发环境
打开Visual Studio,在 工具->选项->项目和解决方案->VC++目录 条目下配置Boost包含文件和库文件目录,这样以后就不用每次都要配置Boost目录。

没有评论:

发表评论