先在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到了我的程序目录下。
重新编译了工程,成功了。运行了下,也一切正常。