背景
开发环境:VS2005
boost:1.48.0
boost下载地址:http://www.boost.org/
文档约定
BOOST_ROOT:表示boost的根目录,本例将boost_1_48_0.7z解压缩到F:\2-研发库\boost\boost_1_48_0,BOOST_ROOT即表示F:\2-研发库\boost\boost_1_48_0。
1)生成bjam.exe
运行BOOST_ROOT/bootstrap.bat,在BOOST_ROOT下生成bjam.exe
2)编译
在BOOST_ROOT/下执行如下命名:
bjam --toolset=msvc-8.0 --with-regex stage debug threading=multi link=shared address-model=64
bjam部分选项,参数说明:
--toolset=msvc-8.0|msvc-10.0,开发环境/编译器,msvc-8.0为vs2005,msvc-10.0为vs2010,borland-6.0为C++builder6.0
threading=single|multi,决定使用单线程还是多线程库,multi为多线程,single为单线程
link=shared|static,连接选项,shared为共享dll,static为静态库
runtime-link=static|shared,决定是静态还是动态链接C/C++标准库
--with-<library>,只编译指定的库,如输入--with-regex就只编译regex库
--show-libraries 显示boost包含的库
address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL
生成文件输出在BOOST_ROOT/bin.v2/libs/regex/build/msvc-8.0/debug/threading-multi
//编译filesystem
bjam --toolset=msvc-8.0 --with-filesystem stage debug threading=multi link=shared
3)使用boost的regex库
#include <boost/regex.hpp>
boost采用自动连接技术,默认作为静态库(link=static)连接,lib文件名为:“libboost_regex-vc80-mt-gd-1_48.lib”。
若boost生成为DLL(link=shared),则需要在工程中定义BOOST_REGEX_DYN_LINK或者BOOST_ALL_DYN_LINK宏,使工程连接动态库,lib文件名为:“boost_regex-vc80-mt-gd-1_48.lib”。