c++ - 未定义引用“std::thread::_State@GLIBCXX_3.4.22 的 typeinfo”的原因?
问题描述
我正在运行带有 gcc 5.4.0、g++ 5.4.0 和 glibc 2.23 的 Ubuntu 16.04。
我运行旧版本的原因是我可以使用 linuxdeployqt 来创建我的应用程序的 AppImage。Ubuntu 16.04 是与 linuxdeployqt 兼容的最新 Ubuntu 版本。
我目前只是试图在系统上构建我的应用程序(不使用 linuxdeployqt)并收到以下错误:
undefined reference to 'typeinfo for std::thread::_State@GLIBCXX_3.4.22'
其他问题(如std::thread 上的 OpenPose 链接错误)说只需安装最新版本的 gcc/g++ 即可解决问题,但在这种情况下使用旧版本是重点。
g++ 5.4.0 是 2015 年发布的,怎么会和 C++ 11 的一个特性不兼容呢?
解决方案
使用 g++ 编译多线程代码时,需要 -pthread 命令行参数。
推荐阅读
- embedded - 如何在 ESP32-S2 内部 ROM 中写入数据?
- apache-kafka - 在流应用程序中至少使用一次处理时,是否可以在 kafka 状态存储中丢失状态
- vue.js - Vuetify 自定义表单验证显示错误 _this.$refs[f].validate 不是函数
- testing - 带有网页界面的 SoupUI
- python - 如何将数据框转换为带有列表键的字典?
- python - 用于 mWebSocket 服务器的 Python WebSocket 客户端
- eclipse-plugin - 如何在 Eclipse 中将 checkstyle 降级到 8.40 或 8.41
- powershell - 我应该如何在我的 Windows Server 中创建一个防火墙表列表来显示端口 443 是否被阻止?
- javascript - 在运行 indented if block 之前防止单击两次
- shell - tmux中的`Ctrl b + d`和`Ctrl b + Ctrl z`有什么区别?