0、前提
Boost库版本 1.57.0
下载地址
http://www.boost.org/users/history/version_1_57_0.html,选择windows版
编译器:VS2010
编译目标:静态链接库
C/C++运行库链接方式: /MT /MTd /MD /MDd
官网给出的windows平台编译器测试包括
Windows:
GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0
编译步骤
1、通过VS2010命令提示符工具进入Boost库根目录
比如:H:\Boost\boost_1_57_0
2、运行根目录下批处理文件
bootstrap.bat
3、执行bootstrap.bat后生成4个文件
b2.exe bjam.exe bootstrap.log project-config.jam
4、用 bjam.exe 来编译boost库
关于 bjam.exe编译Boost库的命令行参数的详细参数可以看 这个链接
bjam参数简介
link参数
表示生成静态链接库 或 生成动态链接库, link=static表示生成静态链接库, link=shared表示生成动态链接库。
runtime-link参数
表示使用C/C++运行库的方式,runtime-link=static表示静态链接C/C++运行库,runtime-link=shared标识动态链接C/C++运行库。
--toolset参数
表示编译boost库的工具集, --toolset=msvc-10.0标识使用VS2010编译,VS版本和工具集版本的对应关系如下:
msvc-6.0 : VC6.0
msvc-7.0: VS2003
msvc-8.0: VS2005
msvc-9.0: VS2008
msvc-10.0: VS2010
threading参数
表示使用多线程库还是单线程库, single表示单线程, multi表示多线程
debug release标识生成debug或release版本
stage参数
表示只生成dll 或 lib,而不生成包含include目录的头文件目录, 如果要生成包含头文件的include目录,需要使用install参数
--stagedir参数
表示生成目录的存放目录
在本文中编译了boost中为每个库编译了4中C/C++链接方式的静态链接库
① /MT /MTd
bjam stage --toolset=msvc-10.0 --build-type=complete --stagedir="H:\Boost\boost_1_57_0\bin\vc10" link=static runtime-link=static threading=multi debug release
生成的库名字格式
/MT: libboost_atomic-vc100-mt-s-1_57.lib /MTd: libboost_atomic-vc100-mt-sgd-1_57.lib
② /MD /MDd
bjam stage --toolset=msvc-10.0 --build-type=complete --stagedir="H:\Boost\boost_1_57_0\bin\vc10" link=static runtime-link=shared threading=multi debug release
生成的库文件名字格式
/MD: libboost_atomic-vc100-mt-1_57.lib /MDd: libboost_atomic-vc100-mt-gd-1_57.lib
5、编译完成
每类/MT /MTd /MD /MDd的静态库各有34个lib。
编译完成后,删除boost目录的bin.v2临时目录。
6、在VS中使用boost库
项目属性--VC++目录--包含目录,设置为boost根目录
项目属性--VC++目录--库目录,设置lib文件目录
7、参考文献
编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010