vc8 sp1环境下boost库的编译和使用

    首先到boost的网站上下载最新的BOOST源代码和编译好的JAM,地址:http://www.boost.org/users/download/ 。这里下载的是 boost-jam-3.1.17-1-ntx86.zipboost_1_37_0.tar.bz2

     1、解压boost和jam。

     2、cmd下进入boost1.37的解压目录,运行bjam  install,bjam会自动检测系统环境,默认编译VC版本的库,如果存在多个VC版本,会编译一个较高版本的库(我系统中有VC6和VC8,最后生成的是VC8版本的库)。


 

3、等待一段时间后,会在C盘根目录下生成一个boost文件夹,里面放着生成的头文件以及LIB和DLL文件。


 

4、将C:\Boost\include\boost-1_37目录下的boost文件夹拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\include下面


 

5、将C:\Boost\lib下的dll文件拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\bin。


 

5、将C:\Boost\lib下以boost开头并且带有boost版本号的lib文件拷贝到D:\Program Files\Microsoft Visual Studio 8\VC\lib,如boost_date_time-vc80-mt-1_37.lib。


 

     C:\Boost\lib下的lib文件有很多是 类似的,如关于graph的有boost_graph-mgw42-mt-1_37.lib、 boost_graph-mgw42-mt.lib、libboost_graph-mgw42-mt-1_37.lib、 libboost_graph-mgw42-mt.lib。其中前面带lib的是静态链接库,不带 lib 的是动态连接库,至于带boost版本号和不带版本号的有什么区别暂时还不清楚。


下面用VC8创建一个C++工程测试一下,代码如下

#include <iostream>  
#include <string>  
#include <boost/filesystem.hpp>  
namespace fs = boost::filesystem;  

/** 
* 输出C盘目录下的所有文件和目录名称 
*/  
int main()  
{  
	fs::path full_path("c:\\");  
	fs::directory_iterator end_iter;  
	for ( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr )  
	{  
		std::cout << dir_itr->path().filename() << std::endl;  
	}  
}  
 

 

    修改D:\Program Files\Microsoft Visual Studio 8\VC\include\boost\config\auto_link.hpp, 在文件的开始地方添加:

 

#define BOOST_DYN_LINK
 

    该文件中包含了自动连接lib文件的一些宏 利用这些宏 定义 可以在vc 8的预编译宏中控制连接不同的lib文件。本人在VC8中预定义宏的时候老是达不到想要的效果,所以干脆自己在源文件开始的地方定义需要的宏。通过了解此文件,你可以自己定义你自己的连接方式。http://blog.csdn.net/huangjack_1/archive/2008/10/14/3073575.aspx 这里有较详细的boost编译连接介绍。

    

    编译运行release版,  即可打印输出C盘根目录下的所有文件和文件夹。


    这篇文章只介绍release版本的编译和使用,debug版的编译我暂时没有找到比较简单的做法。我使用的比较笨的方式是运行bjam --build-type=complete install,然后隔段时间去看一下debug版编译完成没有,因为他首先生成的是release版,那么只要看C:\Boost\lib目录下debug版本的动态库是否和release版本的动态库数目一致,如果一致表示debug版编译完成,就可以强制终止bjam程序了。 使用debug版本的时候和release版本一样,将相应的文件拷贝过去就可以了。


    注意:编译debug版本的过程中会生成很多obj文件,大概要占用2到3G的空间。

 

     附件中是我自己编译好的debug版dll和lib,有需要的可以在这里下载,同时也可以到http://www.boostpro.com/products/free 下载其他版本boost的安装程序,该安装程序会帮你下载相关的头文件和动态库。

 

你可能感兴趣的:(C++,c,C#,Microsoft,vc++)