gcc “未找到类的RTTI符号”警告是什么意思?

6ovsh4lw  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(321)

我正在为Android的本地应用程序。它是用C++编写的,使用GCC 4.9编译,并使用Boost 1.59和Qt库。我在QtCreator控制台中看到这些粉红色的警告:

RTTI symbol not found for class 'boost::signals2::signal<void (), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void ()>, boost::function<void (boost::signals2::connection const&)>, boost::signals2::mutex>'
RTTI symbol not found for class 'boost::signals2::signal<void (), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void ()>, boost::function<void (boost::signals2::connection const&)>, boost::signals2::mutex>'
RTTI symbol not found for class 'boost::signals2::signal<void (), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void ()>, boost::function<void (boost::signals2::connection const&)>, boost::signals2::mutex>'

该应用程序在Android手机上运行。
这是令人不安的,因为我也有来自signals2库的segfault崩溃。这个警告到底是什么意思,又是从哪里来的?

envsm3lx

envsm3lx1#

这个问题仍然是相关的,即使在提出7年后,在可预见的时间内可能仍然如此。
该错误可能是由GDB中的错误引起的,这些错误是由GCC的行为引起的。
参见:
https://gcc.gnu.org/legacy-ml/gcc-help/2017-08/msg00120.html
目前,它仍然是一个开放的问题,GCC开发团队的最新预测由Paul Smith在GCC bugzilla问题跟踪器上给出:

  • 这显然是一个特别严重的冰山一角。局部的措施似乎对人们没有吸引力,没有人有必要的时间、知识和联系来攻击整个冰山。

我想在下面添加一些有用的解决方法,但我不知道任何。评论赞赏。这个问题值得回答。这个问题浪费了开发人员大量的时间和精力。

相关问题