vs2010编译boost若干问题解决

来源:     2016-01-22 13:47:02    人气:     我有话说( 0 人参与)

清泛网(www.tsingfun.com):首先说下环境,win7,vs2010。先在http: www.boost.org users download 上下载boost安装包,我下的是1.52.0版。按照说明,直接运行bootstr...

首先说下环境,win7,vs2010。

先在http://www.boost.org/users/download/上下载boost安装包,我下的是1.52.0版。

按照说明,直接运行“bootstrap.bat”,报“‘cl'不是内部或外部命令”的错误,于是在环境变量中添加了cl.exe的路径——“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_ia64”。再次运行“bootstrap.bat,提示找不到“mspdb100.dll,继续在环境变量中添加了路径——C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 

继续编译,还是不过,看了下bootstrap.log,提示一些头文件找不到,放弃了之前的思路,不再继续添加环境变量,还是使用vs自带的命令行工具吧,这个工具在启动时会自动设置好各种路径。工具的位置在菜单“工具->visual studio命令提示”(或者在“开始-程序-Micro Visual Studio 2010-Visual Studio Tools-Visual Studio 命令提示),使用这个命令行工具,运行“bootstrap.bat”,bjam.exe编译成功,根据提示,在cmd中继续敲入“.\b2”,boost库编译成功。

接下来要做些试着,在vs2010中,菜单“视图->属性管理器”,随便打开一个c++工程,展开树形结构,有个Microsoft.Cpp.Win32.user 项,在这项中的“vc++目录->库目录”中添加“G:\boost_1_52_0\stage\lib”(我的boost库放在G盘的),在“包含目录”中添加“G:\boost_1_52_0 ”。

大功告成!

后来试着在工程中添加了boost,发现Link的时候始终报无法访问“boost_python-vc100-mt-gd-1_52.lib”。我看了下,各种路径设置都是正确的,而且这个lib文件确实也有,估计是这个lib文件关联的某个文件没有成功加载。

在网上搜索了下,发现直接使用“.\b2”这个选项编译的是有问题的,简单的说,就是各种编译参数没有设置好。

由于我主要是使用boost中与python相关的东西,所以先将“boost_1_52_0\tools\build\v2\user-config.jam”文件打开,在最后一行添加了“using python : 2.7 : d:\\python27 ;”(“d:\\python27”是我python的安装目录),然后用“visual studio命令提示”工具执行了下面的命令“bjam stage toolset=msvc-10.0 variant=debug link=static address-model=32 threading=multi runtime-link=static -s install”命令。由于使用了“install”命令,编译完成后,在C盘生成了“C:/boost”目录,头文件、lib文件、dll文件都在里面。

重新设置了“VC++目录->库目录”,添加“C:\Boost\lib”,“包含目录”添加了“C:\Boost\include\boost-1_52”,然后将“boost_1_52_0\stage\lib”中的两个dll文件copy到了我的程序目录下。

重新编译了工程,成功了。运行了下,也一切正常。

vs2010 boost 编译

本文源自互联网,采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可,
版权归原作者,如有问题请联系service@tsingfun.com (编辑:admin)