boost 安装(转载)

来源:互联网 发布:无人深空 优化 编辑:程序博客网 时间:2024/05/07 20:34

Windows下如何编译使用boost?


最近在看boost::asio的东西,所以必须要用到boost库,下载了一个,所以与大家分享下boost库的编译方法。

本方法应该适用于boost的任何版本,应该适用于任何C++编译器(VC6.0可能对某些库不支持,因为模板的原因),因为Linux没怎么用,所以只是分享下windows上的编译方法。

1.下载boost

从boost官网( http://www.boost.org )上下载最新的boost版本,现在最新是1.49版本,解压到自定义目录(为了后面好说明,这里假设为boost_1_49)

2.编译安装boost

boost_1_49目录下会有一个bootstrap.bat批处理,可以直接点击它,会在 boost_1_49\tools\build\v2 文件夹下生成两个exe,b2.exe;bjam.exe,拷贝这两个文件到boost_1_49目录下。从cmd命令进入到boost_1_49路径下,如果你不知道如何编译,可以输入–help查看命令行帮助。

输入如下命令:

b2 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

使用不同的命令对你使用boost也会产生很大的影响,因为CPU速度和硬盘现在都已经不是大问题了,所以本例中选择了除了不必要库的完全编译,当然了,你时间够,硬盘够,可以完全编译

b2 --toolset=msvc-10 --build-type=complete

解释完以上的命令后,再说完全编译的后果。

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库就生成了,剩下就是直接使用到项目中了。

上面的编译指令可以存成一个批处理,这样进入到boost_1_49目录后,只需要执行批处理就可以了,更方便。

(现在看到为什么不推荐使用完全编译了吧,因为完全编译会编译出各种组合的所有情况,需要占用更多的空间和时间,所以建议各位朋友还是放弃了吧)

使用的时候可以直接包含到项目中,然后在对应的文件中包含相应的头文件即可,例如

#include "boost/asio.hpp"

假如您还嫌上面你的方法太麻烦了,可以使用一个懒汉专用小工具boost setup,下载地址为http://www.boostpro.com/download/

这个工具可以帮你下载并编译好,你只需要点击鼠标配置下就可以了,一步步操作如下图:

boost_1_47_setup_1
boost_1_47_setup_2
boost_1_47_setup_3
boost_1_47_setup_4
最后点击Install之后就会编译并安装到你指定的目录,这个够方便吧(不过这个是下载后编译,可能会有点慢)。最后一步就不演示了,因为我还不想用这种方法。

以上就是boost在windows环境下的安装编译方法,boost库可以说是现在最强大的C++类库了,你想要的任何功能都有,我认为每一个C/C++程序员都应该学习的

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 不知道怀孕喝酒了怎么办 不知道怀孕了喝酒了怎么办 怀孕5天喝酒了怎么办 打孩子耳光后脸肿了怎么办 老师说上课不专心怎么办 孩子不专心好动马虎怎么办 学生上课不认真听讲怎么办 一年级孩子上课不注意听讲怎么办 一年级孩子上课说话不听课怎么办 一年级孩子上课不听课怎么办 小学一年级学生上课不专心怎么办? 小孩听课注意力不集中怎么办 小孩子上课精神不集中怎么办 孩子说我不画了怎么办 幼儿园小朋友上课不专心怎么办 孩子写作业不专心怎么办 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办 我又打孩子了怎么办 打排卵针不排卵怎么办 总是控制不住打骂孩子怎么办 叛逆期的孩子打骂妈妈怎么办 孩子屁股打青了怎么办 父亲把孩子屁股打流血怎么办 孩子屁股长了湿疹怎么办 宝宝发脾气摔东西躺地上怎么办 生气拿棍子打了孩子怎么办 小宝宝被蚊虫咬了怎么办