swich1234 2024-04-25 09:26 采纳率: 7.7%
浏览 195

Qt Creator 调试运行,报错 “ RTTI symbol not found for class 'QObject' ”

Qt Creator 调试运行,报错 “ RTTI symbol not found for class 'QObject' ”为什么

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-25 09:26
    关注

    引自免费微信小程序:皆我百晓生

    在Qt编程中,RTTI(Run-Time Type Information)是用于在运行时确定对象类型的一种机制。这个错误通常发生在编译时启用了RTTI,但在调试或运行时没有正确地启用它。为了解决这个问题,你需要确保在编译和链接阶段都启用了RTTI支持。

    以下是解决此问题的步骤:

    1. 确保在项目配置中启用了RTTI。在Qt Creator中,按照以下步骤操作:

      • 打开你的项目 .pro 文件。
      • 搜索并添加或确认已经存在 QT += core gui 这一行,这会包含Qt的基础库,其中包含了QObject类和RTTI支持。
      • 如果你只对特定部分使用RTTI,可以尝试添加 CONFIG += rtti.pro文件中。但这可能不是最好的做法,因为全局启用RTTI可能会增加程序的大小和性能消耗。
    2. 验证C++编译器设置:确保你的C++编译器(例如g++或clang++)在编译时启用了RTTI。在命令行中查看项目的构建过程,检查是否有 -frtti-D__GXX_RTTI 选项。如果没有,你需要在构建配置中添加这些选项。

    3. 如果你使用的是CMakeLists.txt,确保包含以下内容:

      set(CMAKE_CXX_STANDARD 11)
      set(CMAKE_CXX_STANDARD_REQUIRED True)
      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -frtti")
      
    4. 清除缓存并重新构建项目。在Qt Creator中,选择 "Projects" 标签页,然后点击右上角的清除按钮,清理项目后再进行构建。

    5. 检查第三方库:如果你的项目依赖于其他库,确保这些库也启用了RTTI。有些库默认情况下不启用RTTI,你可能需要修改它们的构建配置来开启。

    6. 如果以上方法都无法解决问题,尝试更新你的Qt版本到最新稳定版,或者检查是否安装了完整的Qt开发环境。

    完成上述步骤后,你应该能够成功编译并运行你的Qt应用,而不会遇到“RTTI symbol not found for class 'QObject'" 的错误。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月25日

悬赏问题

  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip