4

我正在尝试编译(thomas pevny 的源代码来计算减法像素邻接矩阵)。此代码要求先前安装 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 版本吗?

感谢您的关注。

4

3 回答 3

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; 
于 2013-06-17T13:55:00.180 回答
2

leaf()已弃用。请参阅: http: //www.boost.org/doc/libs/1_46_1/libs/filesystem/v3/doc/reference.html#directory_iterator-members 您可以尝试不使用BOOST_FILESYSTEM_NO_DEPRECATED.

于 2013-06-17T13:58:45.553 回答
0

通过@Salgar 和@Jean-Baptiste Yunès 的建议以及在makefile 中的-lboost_filesystem 之后添加-lboost_system 解决了这个问题。谢谢大家。

于 2013-06-17T16:15:33.030 回答