我正在尝试编译(thomas pevny's source code to calculate the subtractive pixels adjacency matrix)。此代码要求先前安装libboost和libpng库,这是我成功完成的。
但是当我执行'make'命令时,终端上会出现以下错误。
spam.cpp:169:26: error: ‘class boost::filesystem3::directory_entry’ has no member named ‘leaf’
spam.cpp:179:20: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string
有没有办法解决这个问题?我应该安装另一个libboost版本吗?
感谢您的关注。
答案 0 :(得分:6)
leaf()
已被弃用。
请参阅此弃用函数列表及其新名称:
http://www.boost.org/doc/libs/1_45_0/libs/filesystem/v2/doc/index.htm
编辑提交:
它应该是这样的:
boost::filesystem::path p("foo.txt");
std::cout << p.filename() << std::endl;
答案 1 :(得分:2)
leaf()
已弃用。请参阅:http://www.boost.org/doc/libs/1_46_1/libs/filesystem/v3/doc/reference.html#directory_iterator-members
您可以尝试不使用BOOST_FILESYSTEM_NO_DEPRECATED
播放。
答案 2 :(得分:0)
问题通过@Salgar和@ Jean-BaptisteYunès的建议以及在makefile中的-lboost_filesystem之后添加-lboost_system来解决。谢谢大家。