对“boost::filesystem::d etail::copy_file的未定义引用

undefined reference to `boost::filesystem::detail::copy_file

提问人:Shistastic 提问时间:5/24/2018 最后编辑:arvedShistastic 更新时间:5/28/2018 访问量:1553

问:

我正在尝试在 CentOS 7 机器上安装 Nova 和 HoneyD,但我发现自己遇到了问题。

问题是,在我使用命令make后,我收到以下错误:

Config.cpp:(.text+0xa2d6): undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::copy_option, boost::system::error_code*)'
../../NovaLibrary/Release//libNovaLibrary.a(NovaUtil.o): In function `Nova::RecursiveDirectoryCopy(boost::filesystem::path const&, boost::filesystem::path const&, bool)':
NovaUtil.cpp:(.text+0x25a4): undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::copy_option, boost::system::error_code*)'
collect2: error: ld returned 1 exit status
make[2]: *** [novad] Error 1
make[2]: Leaving directory `/usr/share/Nova/Novad/Release'
make[1]: *** [novad-release] Error 2
make[1]: Leaving directory `/usr/share/Nova'
make: *** [release] Error 2

我该如何解决这个问题?

提升 Makefile 未定义引用 蜜罐

评论

0赞 arved 5/26/2018
请将编译器调用添加到您的问题中。确保链接到 -lboost_filesystem
0赞 Tsyvarev 9/25/2019
对“boost::filesystem::d etail::copy_file C++ BOOST 未定义引用的可能重复

答:

0赞 Shistastic 5/28/2018 #1

我找到了自己问题的解决方案。

解决方案是编辑文件 Config.cpp 并替换以下行:

#include <boost/filesystem.hpp>

对于以下内容:

#define BOOST_NO_CXX11_SCOPED_ENUMS
#include <boost/filesystem.hpp>
#undef BOOST_NO_CXX11_SCOPED_ENUMS

在我这样做之后,我停止收到错误。