对 boost::system::d etail::system_category_instance 的未定义引用,从
Undefined reference to boost::system::detail::system_category_instance that gets fixed when switching from C++14 to C++11
我正在尝试构建使用 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++11
切换-std=c++14
标志时,错误消失。我从这个答案中得到了这个想法。我不知道为什么可以修复它。现在在我的项目中,我不能使用-std=c++11
标志代替-std=c++14
标志。
你必须重新编译 boost 指定cxxstd=14
.
相关文章:
- 编译C++时未定义的引用
- vscode g++链路故障:体系结构x86_64的未定义符号
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 不知道某个东西是否被忽略会引入未定义的行为吗
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- C++ Boost:在Windows中对boost::system::generic_category()的未定义引用
- 对"boost::system::system_category()"的未定义引用
- boost::system::generic_category 静态链接后未定义
- 对 boost::system 的未定义引用
- OS X, CMake, Boost: 未定义的架构符号 x86_64: "boost::system::detail::generic_category_instance"
- 未定义对"boost::system::generic_category()"的引用
- C++ Boost:未定义的对 boost::system::generic_category() 的引用
- 编译时未定义对boost::system::system_category()的引用
- 未定义对"boost::system::generic_category()"的引用?
- 使用QtCreator为android构建boost_ALL_NO_LIB时,未定义对boost::system::sy
- C ++并且无法编译 - 未定义对'boost::system::generic_category()的引用
- 对boost::system::generic的另一个未定义引用
- 对'boost::system::system_category()'的未定义引用