Qt Creator 调试运行,报错 “ RTTI symbol not found for class 'QObject' ”为什么
6条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在Qt编程中,RTTI(Run-Time Type Information)是用于在运行时确定对象类型的一种机制。这个错误通常发生在编译时启用了RTTI,但在调试或运行时没有正确地启用它。为了解决这个问题,你需要确保在编译和链接阶段都启用了RTTI支持。
以下是解决此问题的步骤:
-
确保在项目配置中启用了RTTI。在Qt Creator中,按照以下步骤操作:
- 打开你的项目
.pro
文件。 - 搜索并添加或确认已经存在
QT += core gui
这一行,这会包含Qt的基础库,其中包含了QObject
类和RTTI支持。 - 如果你只对特定部分使用RTTI,可以尝试添加
CONFIG += rtti
到.pro
文件中。但这可能不是最好的做法,因为全局启用RTTI可能会增加程序的大小和性能消耗。
- 打开你的项目
-
验证C++编译器设置:确保你的C++编译器(例如g++或clang++)在编译时启用了RTTI。在命令行中查看项目的构建过程,检查是否有
-frtti
或-D__GXX_RTTI
选项。如果没有,你需要在构建配置中添加这些选项。 -
如果你使用的是CMakeLists.txt,确保包含以下内容:
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -frtti")
-
清除缓存并重新构建项目。在Qt Creator中,选择 "Projects" 标签页,然后点击右上角的清除按钮,清理项目后再进行构建。
-
检查第三方库:如果你的项目依赖于其他库,确保这些库也启用了RTTI。有些库默认情况下不启用RTTI,你可能需要修改它们的构建配置来开启。
-
如果以上方法都无法解决问题,尝试更新你的Qt版本到最新稳定版,或者检查是否安装了完整的Qt开发环境。
完成上述步骤后,你应该能够成功编译并运行你的Qt应用,而不会遇到“RTTI symbol not found for class 'QObject'" 的错误。
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥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