星期一, 七月 20, 2009

boost 编译如何做?

如果安装了mingw,可以用gcc来编译boost.
在编译之前,必须首先装了cybgin或mingw或者visual c++ studio 2008,免费版本的可以在网络上直接下载.

在编辑boost必须手边编译好bjam.
这个在下载的boost 1.39解压缩的包里的:boost_1_39_0\tools\jam
在安装了vs c++ studio 2008或gcc之后就可以直接运行:build_dist.bat
如果要gcc.修改文件最后一句call .\build.bat 为 call .\build.bat gcc
就可以了。

boost编译完后,可以把所有lib和头文件复制到一个指定的目录下
这个动作需要在命令行指定install 参数

编译好bjam后,复制到安装的boost根目录下.
然后可以直接运行bjam了。

标准编译的,支持多线程,用gcc编译,编译的选项包括:
bjam install --toolset=gcc --prefix="c:\boost_1_38_0" release toolset=gcc threading=multi link=static


注意:如果不指定toolset和prefix选项,boost默认使用 mscv编译
和c:\boost_1_39_0目录安装

boost编译支持的选项可以通过bjam --help 来查看。意思如下:


--build-dir= 编译的临时文件会放在builddir里(编译完就可删除)

--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- 只编译指定的库,如输入--with-regex就只编译regex库了。

--show-libraries 显示需要编译的库名称