首先到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++工程测试一下,代码如下
- #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;
- }
- }
同时添加连接选项,由于filesystem依赖system,所以这里的连接选项中将system也要加上,最终结果如下图
编译运行该工程,即可 打印输出 C盘根目录下所有文件和文件夹名称。