提升链接错误

时间:2010-11-23 18:53:10

标签: c++ boost linker

所以,我正在尝试使用boost.process库。我从this location下载了包,从boost子目录复制包含到 / usr / include / boost ,写了一个简单的代码:

    namespace bp = ::boost::process;
    std::string execApp = "make";
    std::vector<std::string> args;
    args.push_back("-C ../build");

    bp::context ctx;
    ctx.stdout_behavior = bp::silence_stream();

    bp::child buildProcess = bp::launch(execApp, args, ctx);

它编译但在链接器失败:

CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost/system/error_code.hpp:208: undefined reference to `boost::system::get_system_category()'
/usr/include/boost/system/error_code.hpp:209: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:214: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:215: undefined reference to `boost::system::get_generic_category()'
/usr/include/boost/system/error_code.hpp:216: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `boost::process::detail::file_handle::posix_remap(int)':
/usr/include/boost/process/detail/file_handle.hpp:264: undefined reference to `boost::system::get_system_category()'
/usr/include/boost/process/detail/file_handle.hpp:269: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `boost::process::detail::file_handle::posix_dup(int, int)':
/usr/include/boost/process/detail/file_handle.hpp:295: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o: In function `pipe':
/usr/include/boost/process/detail/pipe.hpp:86: undefined reference to `boost::system::get_system_category()'
CMakeFiles/DebugConsole.dir/Debug/DebugConsole.cpp.o:/usr/include/boost/process/detail/posix_ops.hpp:202: more undefined references to `boost::system::get_system_category()' follow
collect2: ld returned 1 exit status

我已将这些库链接起来:filesystem system date_time

1 个答案:

答案 0 :(得分:5)

您可能希望查看最后一个答案here.

  

我有一个非常相似的问题,并在搜索时发现了这篇文章。一世   经过多次搜索后设法解决了问题,所以我发布了   在这里为其他人。

     

我必须以这种方式链接到正确的库:g ++ boost_example.cpp -o   运行-lboost_filesystem-mt http://linux.overshoot.tv/ticket/127

     

真正的问题是增强文档缺乏并且确实如此   不要说要链接到哪个库。看到:   http://linux.overshoot.tv/ticket/129

     

无论如何,要使用boost / file_system,请链接到:-lboost_filesystem-mt。

     

另请参阅:http://ubuntuforums.org/showthread.php?t=244593