废话少说,直接进入主题:
1.安装包准备:
由于我的开发机器已经安装了vs2008和stlport5.2.1,所以我只需要去boost官网下载了boost1_47_0,至于我为什么下载这个版本而不是最新,是因为最新的在安装过程中有点问题,而且这个版本在网上也有说明。
2.安装编译boost
需要使用vs2008的命令行工具,如下图:
使用红色框出来的命令行工具进行boost的编译。
启动命令行以后,进入boost安装包所在的目录,例如我的就是D:i\c++_regex\boost_1_47_0。
然后运行bootstrap.bat,会在当前目录中产生bjam.exe文件。
然后在D:\c++_regex\boost_1_47_0\tools\build\v2中找到user-config.jam文件,进行相关参数的配置:主要配置两个参数:
1)将# using msvc : 8.0 ; 改为 using msvc : 9.0 ;
2)将# using stlport : : /usr/include/stlport : /usr/include/stlport/lib" ; 改为using stlport : 5.2.1 : "E:/STLport-5.2.1/STLport-5.2.1/stlport" : "E:/STLport-5.2.1/STLport-5.2.1/lib" ;
主要是告知编译器使用vs2008(9.0),使用stlport库。
下面就是使用bjam.exe来编译boost库了:
bjam --prefix=E:\Boost\boostinstall\4.7 --build-type=complete --with-regex toolset=msvc threading=multi address-model=64 runtime-link=static stdlib=stlport install
上面的命令行是我千辛万苦找到的比较全的,之前少了这个少了那个命令参数,导致编译出来的库缺少,下面就上面的命令行解释一下:
--prefix : 表示你想编译的boost库存放路径,这个参数只有在install模式下有用
--with-regex:就是表示之编译boost的regex(正则库),因为我的程序目前只需要正则这部分。
toolset=msvc : 因为配置文件里已经配置了msvc的版本,此处只需要告知编译器是msvc就行
threading=multi:这个参数给出后,编译出的lib是带mt的,表示多线程使用
address-model=64:表示编译的是64位的boost库,用于64位程序使用
runtime-link=static :编译出来的是静态库
stdlib=stlport : 使用stlport进行编译,这样编译出来的库会带上sp标识
最后加上install,按回车进行build,成功。