用boost库编译C ++代码的问题

时间:2013-06-17 13:51:49

标签: c++ boost makefile

我正在尝试编译(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版本吗?

感谢您的关注。

3 个答案:

答案 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来解决。谢谢大家。