我正在尝试构建一个使用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
标志。