编译boost库(转载)

来源:互联网 发布:数据库 方向 编辑:程序博客网 时间:2024/05/19 23:09

原文:http://blog.csdn.net/dupei/article/details/6110153


环境介绍

Window XP + VisualStudio 2008

获取Boost库源码

我们可以从http://www.boost.org/ 上获取boost的源代码。当前最新版本为1.45.0。

解压到指定目录

例如:D:/ProgramFiles/boost/目录下

获取bjam

一种方式:从http://sourceforge.net/projects/boost/files/boost-jam/上下载;

另一种方式:双击D:/ProgramFiles/boost_1_45_0/tools/build/v2/engine/src/build.bat。执行完成以后,就可以在bin.ntx86文件夹中发现bjam.exe,最后,将bjam.exe文件拷贝到D:/ProgramFiles/boost_1_45_0/目录下。

编译指定的boost库

其实,多数的boost库并不需要进行编译的,只有少部分库是平台相关的,需要单独编译,这可以在http://www.boost.org/doc/libs/1_45_0/more/getting_started/windows.html 上看到。 
原文如下:

image

针对这些需要编译的库文件,我们应该如何编译呢?(个人使用的MSVC)

打开CMD,进入boost的主目录,cd“D:/Program Files/boost_1_45_0/”

因为,我们已经将bjam.exe拷贝到BOOST_ROOT/boost_1_45_0下,所以,现在,我们可以直接使用bjam来编译指定的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             显示需要编译的库名称
举例,如果我们只想编译boost.thread,我们可以使用如下命令:
   bjam --toolset=msvc --build-dir=midfiles --stagedir=stage --build-type=complete --with-thread
   --toolset=msvc         指定编译器,如果使用其他的编译器,可以自行指定,borland(对应BCB)或msvc(对应VC)或gcc(对应Mingw)   --build-dir=midfiles   指定中间文件的目录,midfiles是我自己随便写的,方便以后删除   --build-type=complete  上面的介绍写的很清楚,就不赘述了   --with-thread          指定需要编译的boost库,当然,不指定也可以,那就全部编译,花费的时间比较长,3、4个小时吧,而且,多数还用不上。

编译完成之后,可以在D:/Program Files/boost_1_45_0/下发现多了两个文件夹midfiles(可直接删除)和stage(可以通过--stagedir=自行指定),需要的lib就在stage文件夹下了。

最后,在VisualStudio环境下设置相应的include和library目录就可以使用boost库了。

0 0