VS2013下Boost1.59的全部编译、测试运行
Boost是一个非标准库,包含着丰富的小工具,可参考《Boost程序库完全开发指南:深入C++"准"标准库(第3版)》一书(该书使用Boost1.57版本)进行使用!
1.下载源代码
Boost官方下载地址:http://www.boost.org/users/history/
选择需要下载的版本(最新版本为1.62,最低版本为1.10.3),点击Download按钮,跳转至下载页选择.zip或.7z格式压缩包下载
2.编译源代码
0)解压源代码,得到booststrap.bat文件
1)生成编译工具
点击booststrap.bat文件,弹开windows下终端,等待30秒生成b2和bjam两种编译工具
2)编译生成代码
按Win+E键输入cmd打开终端,利用命令cd切换到boost解压缩的所在文件夹下,利用生成的b2或者bjam命令进行编译生成库文件
命令1:cd [boost解压所在路径]
命令2:.\b2 --help 输出帮助信息了解boost编译的选项
命令3:.\b2 --buildtype=complete install 同时生成Debug和Release下的所有库,默认路径在C:\Boost\文件夹下
等待20分钟...
4)生成头文件和库文件
Boost默认生成的头文件和库文件路径在C:\Boost\文件夹下的include和lib文件夹下,编译路径可在编译时改变,详情见.\b2 --help命令中介绍
3. VS2013下测试用例
1)新建一个VS2013工程
略
2)新建Debug和Release属性列表
通用属性->VC++目录->包含目录:添加头文件路径(C:\Boost\include\boost-1_59)
通用属性->VC++目录->库目录:添加库文件路径(C:\Boost\lib)
链接器->输入->附加依赖项:添加库文件名字(区分Debug和Release)
Debug下:
libboost_atomic-vc120-mt-gd-1_59.lib
libboost_chrono-vc120-mt-gd-1_59.lib
libboost_container-vc120-mt-gd-1_59.lib
libboost_context-vc120-mt-gd-1_59.lib
libboost_coroutine-vc120-mt-gd-1_59.lib
libboost_date_time-vc120-mt-gd-1_59.lib
libboost_exception-vc120-mt-gd-1_59.lib
libboost_filesystem-vc120-mt-gd-1_59.lib
libboost_graph-vc120-mt-gd-1_59.lib
libboost_iostreams-vc120-mt-gd-1_59.lib
libboost_locale-vc120-mt-gd-1_59.lib
libboost_log_setup-vc120-mt-gd-1_59.lib
libboost_log-vc120-mt-gd-1_59.lib
libboost_math_c99f-vc120-mt-gd-1_59.lib
libboost_math_c99l-vc120-mt-gd-1_59.lib
libboost_math_c99-vc120-mt-gd-1_59.lib
libboost_math_tr1f-vc120-mt-gd-1_59.lib
libboost_math_tr1l-vc120-mt-gd-1_59.lib
libboost_math_tr1-vc120-mt-gd-1_59.lib
libboost_prg_exec_monitor-vc120-mt-gd-1_59.lib
libboost_program_options-vc120-mt-gd-1_59.lib
libboost_random-vc120-mt-gd-1_59.lib
libboost_regex-vc120-mt-gd-1_59.lib
libboost_serialization-vc120-mt-gd-1_59.lib
libboost_signals-vc120-mt-gd-1_59.lib
libboost_system-vc120-mt-gd-1_59.lib
libboost_test_exec_monitor-vc120-mt-gd-1_59.lib
libboost_thread-vc120-mt-gd-1_59.lib
libboost_timer-vc120-mt-gd-1_59.lib
libboost_unit_test_framework-vc120-mt-gd-1_59.lib
libboost_wave-vc120-mt-gd-1_59.lib
libboost_wserialization-vc120-mt-gd-1_59.lib
libboost_atomic-vc120-mt-1_59.lib
libboost_chrono-vc120-mt-1_59.lib
libboost_container-vc120-mt-1_59.lib
libboost_context-vc120-mt-1_59.lib
libboost_coroutine-vc120-mt-1_59.lib
libboost_date_time-vc120-mt-1_59.lib
libboost_exception-vc120-mt-1_59.lib
libboost_filesystem-vc120-mt-1_59.lib
libboost_graph-vc120-mt-1_59.lib
libboost_iostreams-vc120-mt-1_59.lib
libboost_locale-vc120-mt-1_59.lib
libboost_log_setup-vc120-mt-1_59.lib
libboost_log-vc120-mt-1_59.lib
libboost_math_c99f-vc120-mt-1_59.lib
libboost_math_c99l-vc120-mt-1_59.lib
libboost_math_c99-vc120-mt-1_59.lib
libboost_math_tr1f-vc120-mt-1_59.lib
libboost_math_tr1l-vc120-mt-1_59.lib
libboost_math_tr1-vc120-mt-1_59.lib
libboost_prg_exec_monitor-vc120-mt-1_59.lib
libboost_program_options-vc120-mt-1_59.lib
libboost_random-vc120-mt-1_59.lib
libboost_regex-vc120-mt-1_59.lib
libboost_serialization-vc120-mt-1_59.lib
libboost_signals-vc120-mt-1_59.lib
libboost_system-vc120-mt-1_59.lib
libboost_test_exec_monitor-vc120-mt-1_59.lib
libboost_thread-vc120-mt-1_59.lib
libboost_timer-vc120-mt-1_59.lib
libboost_unit_test_framework-vc120-mt-1_59.lib
libboost_wave-vc120-mt-1_59.lib
libboost_wserialization-vc120-mt-1_59.lib
3)测试程序
#include <iostream>
#include <boost/thread/thread.hpp>
using namespace std;
void hello()
{
std::cout << "Hello world, I'm a Boost thread!" << std::endl;
}
void main(void){
boost::thread thrd(&hello);
thrd.join();
system("pause");
}
4)输出结果
Ok,到此为止,Boost已经全部编译测试通过,可以开始深入使用了~