Boost库的编译

首先到 Boost的官网下载解压包  http://www.boost.org

解压到自己喜欢的地方.

一、编译

我们以VS2015为例,Boost库1.65.1

进入VS2015的命令行

首先需要先生成 bjam.exe (b2.exe)

运行 bootstrap.bat 等待bjam生成。

然后开始编译Boost库

bjam stage --toolset=msvc-14.0 --without-graph --without-graph_parallel --stagedir="D:\boost\boost_1_65_1\bin\vc14" link=static runtime-link=shared runtime-link=static threading=multi debug release

接下来就是等待了,大约几分钟的时间,就编译好了。可以包含目录使用了。

下面详细解释一下每个参数的含义:

stage/installstage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:\SDK\boost\boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。

toolset指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-14.0(VS2015)等。

without/with选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。还有wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,所以不需要的也可以without掉。这可以根据各人需要进行选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。查看boost包含库的命令是bjam --show-libraries

stagedir/prefixstage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:\SDK\boost\bin\vc9,VC6对应的是E:\SDK\boost\bin\vc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是E:\SDK\boost\bin\vc9\include\boost-1_46\boost,vc6类似(光这路径都这样累赘,还是使用stage好)。

build-dir Read More