我一直在尝试使用此示例遍历目录,我在快速谷歌搜索中找到了该示例:
namespace bf = boost::filesystem;
bf::path p("somedir");
bf::directory_iterator end_iter;
for (bf::directory_iterator iter(p); iter != end_iter; ++iter) {
}
但是,当通过Terminal运行时,默认构造函数会导致:
testapp(6538) malloc: *** error for object 0x10fee9820: pointer being freed was not allocated
。进一步的调试表明,这发生在directory_iterator的构造函数中。这有发生在其他人身上吗?
如果我通过NetBeans运行它,一切运行正常。
我使用OSX 10.8.3和GCC 4.8
答案 0 :(得分:1)
我遇到了这个问题。对我来说,问题最终是Boost库使用不同于我在项目中使用的C ++编译器编译(对于我的东西而言为Boost和gcc的clang)。我用GCC重新编译了Boost并取得了成功。