【发布时间】:2016-05-02 14:53:11
【问题描述】:
我不知道为什么boost::filesystem::copy_file 给我找麻烦。
对 `boost::filesystem::detail::copy_file 的未定义引用
// g++ -std=c++11 test.cpp -lboost_filesystem -lboost_system -lrt -lboost_wave
#include <boost/filesystem.hpp>
int main()
{
boost::filesystem::create_directory("aaa");
// ok
boost::filesystem::copy_file("f1","f2");
// /tmp/ccNWZltB.o: In function `boost::filesystem::copy_file(boost::filesystem::path const&, boost::filesystem::path const&)':
// test.cpp:(.text._ZN5boost10filesystem9copy_fileERKNS0_4pathES3_[_ZN5boost10filesystem9copy_fileERKNS0_4pathES3_]+0x26): 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
return 0;
}
我没有从 boost 的源代码或其help 中得到灵感:
inline
void copy_file(const path& from, const path& to, // See ticket #2925
BOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec)
{detail::copy_file(from, to, option, &ec);}
即使是这样的simple example 也不适合我。
平台:Linux Ubuntu 64
【问题讨论】:
-
如果没有
-std=c++11,它会编译吗? -
是的。我刚刚找到this bug
-
我会下载并检查新版本。
-
这个对同一问题的回答提供了更多细节,stackoverflow.com/a/17988317/5781248
标签: c++ boost linker-errors boost-filesystem