我一直在尝试使用通过快速谷歌搜索找到的这个示例遍历目录:
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:*** 对象 0x10fee9820 错误:未分配正在释放的指针
。进一步调试发现,这发生在 directory_iterator 的构造函数中。这有发生在其他人身上吗?
如果我通过 NetBeans 运行它,一切都运行良好。
我使用 OSX 10.8.3 和 GCC 4.8
最佳答案
我遇到了这个确切的问题。对我来说,问题最终是 Boost 库是使用与我在项目中使用的不同的 C++ 编译器编译的(Clang 用于 Boost,gcc 用于我的东西)。我用 GCC 和成功重新编译了 Boost。
关于c++ - Boost directory_iterator 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16838351/