分类: C/C++
2014-04-29 14:16:50
系统:win7
开发环境:visual studio 2010
boost版本:boost_1-46_1
目标:编译boost库,并添加到vs2010中以供使用。
实践是最好的办法。。学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我。。没看到比较完整的安装教程。。一直耽搁。今天动手。完成了。方法记录如下:
1.下载boost
从boost官网( )上下载最新的boost版本,我下的是boost_1.46.1版本,解压到自定义目录,最终的目录结构是D:\boost_1_46_1
2.编译boost库
在D:\boost_1_46_1的目录下,有一个bootstrap.bat文件,直接双击运行。就会在同目录生成bjam.exe文件。
3.设定编译选项
修改user-config.jam (D:\boost_1_46_1\tools\build\v2\user-config.jam) 的MSVC configuration
# MSVC configuration
# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;
在上面这段的下面直接添加如下的文字。
using msvc:10.0::
如果开发环境为VS2008则msvc项应为 msvc:9.0
保存关闭。
4.开始编译
点击开始->所有程序->“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2010 command prompt(命令提示)” 使用cd切换到D:\boost_1_46_1目录。
然后输入如下的代码:
bjam --toolset=msvc-10.0 architecture=x86 instruction-set=i686 address-model=32 link=static
variant=debug,release threading=multi runtime-link=shared --without-python --without-mpi
--without-wave --without-graph --without-math --without-serialization stage
解释一下命令的意思:
1.toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0)
2.architecture:表示架构,也就是你的CPU架构,x86,x64,因为我安装的是win7 32位,所以使用了x86的架构
3.instruction-set:表示指令集,依然是8086指令集
4.address-model:表示地址长度为32位
5.link:表示生成动态/静态链接库,动态链接库是shared,静态链接库是static,一般都会编译成静态库,因为给出程序的时候打包boost的库会非常庞大
6.variant:表示生成的Debug或者release版本,一般情况下会两种版本都会编译出来的
7.threading:表示单/多线程编译,一般我们的程序都会用到多线程,所以选择了multi
8.runtime-link:表示动态/静态链接C/C++运行时库(C/C++ Runtime),我们选择了动态链接
9.without/with:表示不需要编译/需要编译哪些库,一些自己不用的库可以无需编译
10.stage/install:stage表示只生成库文件(DLL和Lib),install还会生成包含头文件的include目录,推荐使用stage,因为boost_1_49\boost中就是boost库完整的头文件,所以无需再拷贝一份出来。编译出来的库会放在stage文件夹中
这样一份完整的boost库就生成了,剩下就是直接使用到项目中了。
(现在看到为什么不推荐使用完全编译了吧,因为完全编译会编译出各种组合的所有情况,需要占用更多的空间和时间,所以建议各位朋友还是放弃了吧)
其实编译的具体命令都是可以自己写的。如果你需要编译所有。只需要使用下面的这行代码
b2 –toolset=msvc-10.0 –build-type=complete
就可以了。
不出问题的话。就开始编译了。。大约十分钟左右吧。就会完成了。
5.在vs中设置boost的运行环境
方法1:
1. 打开vs,新建一个工程,并新建相应的cpp文件(只有在新建cpp文件后才会有对应的c/c++)。然后工程->属性->配置属性->C/C++ ->附加包含目录
填上
D:\boost_1_46_1;%(AdditionalIncludeDirectories)
这个是最终的结果,你也可以手动添加
2. 在左侧选择链接器->附加库目录,填上
D:\boost_1_46_1\stage\lib;%(AdditionalLibraryDirectories)
就可以了,但是这种方法的缺点是对每个要使用boost的项目都要手动添加。
方法2:(推荐)
在菜单栏选择视图->其他窗口->属性管理器.在对应的Debug|Win32和Release|Win32下的Microsoft.Cpp.Win32.user右键属性,在VC++目录中的包含目录和库目录选项上添加boost对应的目录,如下图所示。因为在属性管理器中的设置使全局设置,所以在新建的项目中就不用自己手动设置了。
6.测试boost环境是否配置成功:
在你新建的工程里输入如下的代码。运行成功就说明可以了