Boost库的编译及在vs2010下的环境配置

系统:win7
开发环境:visual studio 2010
boost版本:boost_1-46_1
目标:编译boost库,并添加到vs2010中以供使用。

实践是最好的办法。。学习C++,想试试线程,然后打算用boost库,结果boost库编译差点吓到我。。没看到比较完整的安装教程。。一直耽搁。今天动手。完成了。方法记录如下:
1.下载boost
从boost官网( http://www.boost.org )上下载最新的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:: /wd4819 /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=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)

这个是最终的结果,你也可以手动添加

  1. 在左侧选择链接器->附加库目录,填上
D:\boost_1_46_1\stage\lib;%(AdditionalLibraryDirectories)

就可以了,但是这种方法的缺点是对每个要使用boost的项目都要手动添加。
这里写图片描述
方法2:(推荐)
在菜单栏选择视图->其他窗口->属性管理器.在对应的Debug|Win32和Release|Win32下的Microsoft.Cpp.Win32.user右键属性,在VC++目录中的包含目录和库目录选项上添加boost对应的目录,如下图所示。因为在属性管理器中的设置使全局设置,所以在新建的项目中就不用自己手动设置了。

6.测试boost环境是否配置成功:
在你新建的工程里输入如下的代码。运行成功就说明可以了

#include <boost/thread/thread.hpp>
#include <iostream>

void hello()
{
        std::cout <<
        "Hello world, I'm a thread!"
        << std::endl;
}

int main(int argc, char* argv[])
{
        boost::thread thrd(&hello);
        thrd.join();
        return 0;
}

参考:
http://leaver.me/archives/721.html
http://www.cppfans.org/1317.html
http://blog.csdn.net/misskissc/article/details/9793645

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值