当从C++14切换到C++11时,未定义对boost::system::detail::system_category_instance的引用错误得到解决

3

我正在尝试构建一个使用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,错误消失了。我从这个 答案 中得到了这个想法。我不知道为什么会修复它。现在在我的项目中,我不能使用 -std=c++11 标志代替 -std=c++14 标志。

1个回答

4
您需要重新编译boost,并指定选项。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接