首页 > 解决方案 > 未定义引用“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 的一个特性不兼容呢?

标签: c++gccg++glibc

解决方案


使用 g++ 编译多线程代码时,需要 -pthread 命令行参数。


推荐阅读