Неопределенная ссылка на boost :: system :: detail :: system_category_instance, которая исправляется при переключении с C ++ 14 на C ++ 11 - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь создать свое приложение на C ++, которое использует boost 1.68.0.При попытке собрать его с помощью 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 Ответ

0 голосов
/ 26 сентября 2018

Вам придется перекомпилировать boost, указав cxxstd=14.

...