1 Boost库的编译
使用环境
Boost1.42.0 + VS2008 + Win7
1.1下载Boost
在官网(www.boost.org)下载boost_1_42_0.7z,然后解压。目前最新的版本为1.61.0,选1.42.0这个这个版本主要是为了和《Boost程序库完全开发》一书一致。
1.3 编译Boost
在VS2008环境下,使用【工具】-【VS2008命令提示行】
通过“P:”进入P盘,通过cd 指令进入子目录,最终进入“boost_1_42_0\tools\jam\src”目录并运行build.bat。
运行结束之后,在“boost_1_42_0\tools\jam\src\bin.ntx86”目录下生成bjam.exe文件。
将bjam.exe拷贝到boost_1_42_0文件夹(根目录)下。
- 在命令行环境下,进入boost_1_42_0目录执行bjam.exe编译命令:
bjam --stagedir=P:\xy\output --with-thread link=static threading=multi runtime-link=shared stage variant=debug
之所以选择这样的编译选项,是前面提示无法打开“libboost_thread-vc90-mt-sgd-1_42.lib”。
执行编译指令:
bjam --stagedir=P:\xy\output --with-date_time link=static threading=multi runtime-link=shared stage variant=debug
因为线程中的超时机制会用到时间库,所以使用thread组件的同时还需要编译date_time库。
由于使用的是静态库文件,所以只需要添加“附加库目录”即可(不用添加附加依赖项)。
另外,运行库需要设置为“多线程调试(/MTd)”,如果为“多线程调试DLL(/MDd)”则还需编译“libboost_thread-vc90-mt-gd-1_42.lib”文件。
3 bjam的使用
Bjam [options][properties][install|stage]
[properties]
--toolset=toolset
指定进行编译的工具集(编译器)
msvc-6.0:VC6.0/msvc-7.0:VS2003/msvc-8.0:VS2005/msvc-9.0:VS2008/msvc-10.0: VS2010
variant=debug|release
决定编译用什么版本(Debug or Release)
link=static|shared
决定使用静态库还是静态库
threading=single|multi
决定使用单线程还是多线程