Windows下如何编译使用boost

原文地址 原文中存在一些错误,并且使用的是1.49。(也许是1.49本身的问题,未深究)

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

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

1.下载boost

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

2.编译安装boost

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

输入如下命令:

b2 toolset=msvc-10.0 --layout=versioned architecture=x86 address-model=64
link=static variant=debug,release threading=multi runtime-link=static 
--without-python --without-mpi --without-wave --without-graph 
--without-math --without-serialization stage

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

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

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

1.toolset:表示编译器工具,我安装的是VS2010,所以是msvc-10.0;
                    具体的版本对应关系,可以查看boost_1_62_0\tools\build\src\tools\msvc.jam中的# Version aliases节
                    # Version aliases.
                    .version-alias-6 = 6.0 ;
                    .version-alias-6.5 = 6.0 ;
                    .version-alias-7 = 7.0 ;
                    .version-alias-8 = 8.0 ;
                    .version-alias-9 = 9.0 ;
                    .version-alias-10 = 10.0 ;
                    .version-alias-11 = 11.0 ;
                    .version-alias-12 = 12.0 ;
                    .version-alias-14 = 14.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_62_0\boost中就是boost库完整的头文件,所以无需再拷贝一份出来。编译出来的库会放在stage文件夹中

这样一份完整的boost库就生成了,剩下就是直接使用到项目中了。

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

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

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

#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++程序员都应该学习的。

posted on 2016-10-20 08:20 FongLuo 阅读(5969) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

常用链接

留言簿

随笔分类(11)

随笔档案(79)

文章档案(1)

收藏夹(38)

学习网站

一般网站

最新随笔

搜索

积分与排名

最新评论

阅读排行榜