您的位置:首页 > 其它

vs2008+stlport下编译boost1_47_0 64位

2015-07-24 09:24 197 查看
废话少说,直接进入主题:

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,成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: