Boost库本身不用多介绍,每个用C++的人都对它有或多或少的概念。尽管它存在着是否过度设计、是否学院派这类的争论,不过作为C++标准库的 后备它的优秀是谁也否认不了的。下面是网上摘录的一段:
对于大部分Boost应用来说,它是不用编译的,直接包含头文件就可使用,如:
any
array
asio
conversion
crc
bind/mem_fn
enable_if
function
lambda
mpl
smart_ptr
...
只有少部分需要编译成库文件,需要编译的库如下:
date_time
filesystem
function_types
graph
iostreams
math
mpi
program_options
python
regex
serialization
signals
system
test
thread
wave
再次啰嗦一句,如果代码中用不到这部分需要编译的Boost库,完全可以不用花时间编译,直接包含头文件 即可。
本文对应的版本是Boost.1.37.0。
下载地址:http://www.boost.org/users/download/
解压,本文假设解压到D:/Boost_1_37_0
Boost库由一系列库组成,为了简化编译,就搞了个bjam 这个工具出来。
想偷懒就直接下载可执行版本,下 载地址 。Windows版的是有ntx86 后 缀的那个。
想自己动手先做编译Boost前热身的就接着往下看:
输入命令:
bjam --toolset= borland (对应BCB)或msvc (对应VC)或gcc (对应Mingw) stage
就开始编译了,编译时间比较长(大概半小时左右,依编译器以及选项不同而不同 ),编译好的文件会放在./stage/lib (依--stagedir= 命令决定 ) 里。
bjam 还有几个很有用的选项:
--build-dir= <builddir> | 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了) |
--stagedir= <stagedir> | 存放编译后库文件的路径,默认是stage |
--build-type= complete | 编译所有版本,不然只会编译一小部分版本(确切地说是相当于:variant=release, threading=multi;link=shared|static;runtime-link=shared) |
variant= debug|release | 决定编译什么版本(Debug or Release?) |
link= static|shared | 决定使用静态库还是动态库。 |
threading= single|multi | 决定使用单线程还是多线程库。 |
runtime-link= static|shared | 决定是静态还是动态链接C/C++标准库。 |
--with- <library> | 只编译指定的库,如输入--with-regex就只编译regex库了。 |
--show- libraries | 显示需要编译的库名称 |