mingw环境下boost库的编译和使用

阅读更多

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


这里假设mingw的安装目录为C:\MinGW

1、将C:\MinGW\bin设置到环境变量的PATH中

 

2、解压下载下来的两个包,将bjam.exe拷贝到boost1.37的解压目录中。最后文件目录格式如下


 

3、在CMD下进入boost1.37的解压目录,运行bjam "toolset=gcc" install


 

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

5、将C:\Boost\include\boost-1_37目录下的boost文件夹拷贝到C:\MinGW\include下面

6、将C:\Boost\lib下的lib文件拷贝到C:\MinGW\lib,将C:\Boost\lib下的dll文件拷贝到C:\MinGW\bin。


     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版本号和不带版本号的有什么区别暂时还不清楚。




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

#include 
#include 
#include 
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;
	}
}

 

     同时添加连接选项,由于filesystem依赖system,所以这里的连接选项中将system也要加上,最终结果如下图


 

编译运行该工程,即可 打印输出 C盘根目录下所有文件和文件夹名称。

  • 大小: 7.8 KB
  • mingw环境下boost库的编译和使用_第1张图片
  • 大小: 73.2 KB
  • 大小: 7.3 KB
  • mingw环境下boost库的编译和使用_第2张图片
  • 大小: 49.6 KB
  • 查看图片附件

你可能感兴趣的:(C,C++,C#,GCC,Eclipse)