关于Boost的编译教程,网站上已经有很多。
本文参考的网站是:http://www.cnblogs.com/zhcncn/p/3950477.html,在此博客中博主已经将Boost编译的各种参数做了非常详尽的介绍。仅仅查阅此博客,便可成功的编译出Boost。
但是除此博客之外,还有一些应当注意的事项,在此博客中并没有完全提到,我对网上的资料加以整理,归纳到此博客中。
一、编译x64版本Boost
参考博客:http://www.cnblogs.com/codingmylife/archive/2012/11/05/2754778.html
之前我也以为,在编译Boost时,选用x64的命令窗口,编译出来的Boost自然也就是64位。然而,情况并不是如此!通常情况下,无论你使用哪种命令工具,默认编译的都是32版本;要想获取64位版本,必须还在编译指令中,添加新的指令:
bjam ... address-model=64
二、编译boost-zlib
参考博客:http://blog.csdn.net/redeyerabbit/article/details/8246436
某些代码的依赖库中,会特别提示到使用boost-zlib;但是默认情况下,一般是不会编译该库。为编译该库,要在使用bjam或b2命令之前,首先对zlib进行设置,步骤如下:
- 下载zlib(http://www.zlib.net/)并解压
- 在生成bjam和b2之后,使用命令
set ZLIB_SOURCE=" E:/zlib-1.2.7"
- 使用bjam或b2编译Boost
如此设置之后,编译的Boost库中,便会自带boost-zlib。
三、多线程模式
参考博客:http://www.cnblogs.com/dementia/archive/2009/04/10/1433217.html
假设大家都使用VS进行编程,那么一定熟悉“属性-C/C++-代码生成-运行库”处,多线程可以分为:MT、MTd、MD、MDd四种。如何编译得到不同类型的多线程运行库呢?其方式在于控制link、runtime-link、release、debug四个参数,其关系图如下:
link | runtime-link | 编译模式 | 多线程类型 |
---|---|---|---|
static | static | release | MT |
static | static | debug | MTd |
static | shared | release | MD |
static | shared | debug | MDd |
总结,目前我在编译Boost时,遇到的问题大致如以上三种,后续如果有其他地方,再做补充!