Boost库单元测试使用配置
1 Boost库简介
Boost官网:http://www.boost.org/。
中文简介见百度百科:http://baike.baidu.com/view/663725.htm。
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。
Boost中比较有名气的几个库:
文件名 | 含义 | 编译选项 |
---|---|---|
libboost_unit_test_framework-vc80-mt-gd-1_48.lib | 静态库,多线程,调试版本 使用静态调试版本C运行时库(LIBCMTD.LIB和LIBCPMTD.LIB) |
/MTd |
libboost_unit_test_framework-vc80-mt-1_48.lib | 静态库,多线程 使用静态版本C运行时库(LIBCMT.LIB和LIBCPMT.LIB) |
/MT |
boost_unit_test_framework-vc80-mt-gd-1_48.lib | 静态库,多线程,调试版本 使用动态调试版本C运行时库(MSVCRTD.LIB和MSVCPRTD.LIB) |
/MDd |
boost_unit_test_framework-vc80-mt-1_48.lib | 静态库,多线程 使用动态版本C运行时库(MSVCRT.LIB和MSVCPRT.LIB) |
/MD |
5 Boost.test调用示例
Boost库的使用学习,见自带index.htm,本例路径为D:\boost_1_48_0\index.htm。
参考:http://www.cnblogs.com/zhihuichien/archive/2010/09/01/1815185.html
参考:http://www.oschina.net/code/snippet_126720_4924
关于单元测试的总结。
创建示例工程。
ConfigurationProperties->C/C++->General->Additional Include Directories路径设置。
对应本例,设置为D:\boost_1_48_0。
Configuration Properties->Linker->General->AdditionalLibrary Directories路径设置。
对应本例,设置为D:\boost_1_48_0\stage\lib。
设置项ConfigurationProperties->Linker->Input->Additional Dependencies。
Debug为:libboost_unit_test_framework-vc80-mt-gd-1_48.lib。
Release为:libboost_unit_test_framework-vc80-mt-1_48.lib。
6 Bjam工具实用命令
参考:http://hi.baidu.com/smart_bee/blog/item/360f23d1c3a3fc87a0ec9cb6.html
参考:http://hi.baidu.com/gclsoft/blog/item/293af0833de60ca26d8119a6.html
Bjame命令 | 含义 |
---|---|
stage/install | stage表示只生成库(dll和lib),install还会生成包含头文 件的include目录。 本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录 (E:\SDK\boost_1_39_0\boost,只比include目录多几个非hpp文件,都很小), 所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。 |
toolset | 指定编译器,可选的如borland、gcc、msvc(VC6)、msvc- 8.0(VS2005)、msvc- 9.0(VS2008)等。 |
--with- |
只编译指定的库,如输入--with-regex就只编译regex库了。 |
--stagedir/prefix= |
stage时使用stagedir,install时使用prefix, 表示编译生成文件的路径。 推荐给不同的IDE指定不同的目录,如VS2008对应的是E:\SDK\boost_1_39_0\bin\vc9, VC6对 应的是E:\SDK\boost_1_39_0\bin\vc6,否则都生成到一个目录下面,难以管理。 如果使用了install参数,那么还将生成头文 件目录, vc9对应的就是E:\SDK\boost_1_39_0\bin\vc9\include\boost-1_39\boost, vc6类似(光 这路径都这样累赘,还是使用stage好)。 |
--build-dir= |
编译生成的中间文件的路径。 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)。 默认就在根目录(E:\SDK \boost_1_39_0)下,目录名为bin.v2, 等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。 |
link=static|shared | 生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用 static方式。 一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。 |
runtime-link=static|shared | 动态/静态链接C/C++运行时库。同样有shared和static两种方 式, 这样runtime-link和link一共可以产生4种组合方式, 各人可以根据自己的需要选择编译。一般link只选static的话, 只需要编译 2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。 |
threading=single|multi | 单/多线程编译。 一般都写多线程程序,当然要指定multi方式了; 如果需要编写单线 程程序,那么还需要编译单线程库,可以使用single方式。 |
debug/release | 编译debug/release版本。一般都是程序的debug版本对应库的 debug版本,所以两个都编译。 |