4

我一直在尝试使用我通过快速谷歌搜索找到的这个示例来遍历一个目录:

namespace bf = boost::filesystem;
bf::path p("somedir");
bf::directory_iterator end_iter;
for (bf::directory_iterator iter(p); iter != end_iter; ++iter) {

}

但是,当通过终端运行时,默认构造函数会导致: testapp(6538) malloc: *** error for object 0x10fee9820: pointer being freed was not allocated. 进一步调试表明,这发生在 directory_iterator 的构造函数中。这有发生在其他人身上吗?如果我通过 NetBeans 运行它,一切都运行良好。

我使用 OSX 10.8.3 和 GCC 4.8

4

1 回答 1

1

我遇到了这个确切的问题。对我来说,问题最终是 Boost 库是用不同的 C++ 编译器编译的,而不是我在项目中使用的(clang 用于 Boost,gcc 用于我的东西)。我用 GCC 重新编译了 Boost 并成功了。

于 2013-07-30T23:13:05.890 回答