编译Boost库

环境介绍

Window XP + Visual Studio 2008

获取Boost库源码

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

解压到指定目录

例如:D:/Program Files/boost/目录下

获取bjam

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

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

编译指定的boost库

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

针对这些需要编译的库文件,我们应该如何编译呢?(个人使用的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文件夹下了。

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

你可能感兴趣的:(C++)