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

来源:互联网 发布:java局域网循环聊天 编辑:程序博客网 时间:2024/05/22 07:52

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


(附)准备bjam.exe工具

接下来打开cmd.exe,进入"D:\OpenSoftware\Boost_1_50_0_MinGW\tools\build\v2\engine\"(有些是在engine\src下有个build.bat)下,使用命令"build mingw",会在此目录下生成文件bin.ntx86\bjam.exe,将bjam.exe拷贝到boost源文件的根目录下,我这里即是:D:\OpenSoftware\Boost_1_50_0_MinGW

生成bjam.exe好像没出问题:(有意请参考附录一,这段可略过,仅供参考)



这里假设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++工程测试一下,代码如下

Cpp代码  收藏代码
  1. #include <iostream>  
  2. #include <string>  
  3. #include <boost/filesystem.hpp>  
  4. namespace fs = boost::filesystem;  
  5.   
  6. /** 
  7.  * 输出C盘目录下的所有文件和目录名称 
  8.  */  
  9. int main()  
  10. {  
  11.     fs::path full_path("c:");  
  12.     fs::directory_iterator end_iter;  
  13.     for ( fs::directory_iterator dir_itr( full_path ); dir_itr != end_iter; ++dir_itr )  
  14.     {  
  15.         std::cout << dir_itr->path().filename() << std::endl;  
  16.     }  
  17. }  

 

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


 

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

0 0
原创粉丝点击