我正在尝试构建使用 boost 1.68.0 的 C++ 应用程序。在尝试使用 cmake 和 make 构建它时,出现以下链接错误,
/usr/local/bin/g++ -Wall -Wextra -g3 -std=c++14 -Wl,-rpath=/usr/local/lib -L/usr/local/lib CMakeFiles/Supervisor.dir/HeartbeatManager.cpp.o CMakeFiles/Supervisor.dir/JobReceiver.cpp.o CMakeFiles/Supervisor.dir/ResultSender.cpp.o CMakeFiles/Supervisor.dir/Supervisor.cpp.o CMakeFiles/Supervisor.dir/Process.cpp.o -o Supervisor -rdynamic -lpthread -lboost_system-mt
CMakeFiles/Supervisor.dir/HeartbeatManager.cpp.o: In function `boost::system::system_category()':
/usr/local/include/boost/system/error_code.hpp:473: undefined reference to `boost::system::detail::system_category_instance'
将 -std=c++14
标志切换为 -std=c++11
时,错误消失。我从这个answer得到了这个想法.我不知道为什么会修复它。现在在我的项目中,我不能使用 -std=c++11
标志而不是 -std=c++14
标志。
最佳答案
您必须重新编译指定 cxxstd=14
的 boost。
关于c++ - 从 C++14 切换到 C++11 时修复的对 boost::system::detail::system_category_instance 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52516249/