报错信息主要在Compile Output、Application Output面板及右下角Kit旁感叹号处查看:Compile Output显示构建错误,Application Output显示运行时日志与崩溃线索,Kit感叹号悬停可见配置类错误描述。

报错信息在哪看?先盯住这三块区域
Qt Creator的报错不是只在一个地方弹出来,它分散在多个面板里,漏掉任何一个都可能卡半天。最常被忽略的是Application Output和Compile Output两个面板——它们默认可能被折叠或隐藏。
-
Compile Output:显示qmake或CMake执行过程中的错误,比如Unknown module(s) in QT: webenginewidgets、cannot open output file这类构建阶段问题,红色文字直接标出失败行 -
Application Output:程序运行后打印的日志、崩溃前最后一句qDebug()、段错误提示(如Segmentation fault),甚至0xc0000005这类Windows异常码也在这里 - 右下角状态栏+Kit旁的感叹号:不是报错内容本身,而是“有错误”的信号灯。鼠标悬停才能看到真实描述,例如
Cannot produce code for the Qt version或CMake configuration has no path to a C++ compiler set
为什么编译没报错但运行就崩?去Application Output翻最后十行
很多崩溃根本不会在Compile Output里出现,因为代码能编译通过,只是运行时出事。这时候Application Output就是第一现场。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
- 程序闪退后,别急着关窗口,先看
Application Output底部是否残留了QMetaObject::activate: Receiver is null或QObject: Cannot create children for a parent that is in a different thread这类线索 - 如果什么都没输出,说明崩溃发生在更底层(比如DLL加载失败),得配合Windows事件查看器查
SideBySide错误,或者用Process Explorer看进程加载了哪些DLL - 开启调试模式(F5)比直接运行(Ctrl+R)更容易捕获崩溃点,尤其对空指针或野指针,IDE会自动停在出问题的那行
Unknown module(s) in QT类错误,别改.pro文件先
看到Unknown module(s) in QT: webenginewidgets就去删QT += webenginewidgets?这是最常见误区。这个错误根本不在代码层,而在环境配置。
- 先确认Qt版本:
qmake --version输出必须≥5.4;低于这个版本,加再多模块也没用 - 再查编译器:MSVC可用,MinGW不可用。如果Kit里选的是
MinGW x86_64,哪怕装了WebEngine组件,照样报这个错 - 最后验证组件:运行
MaintenanceTool.exe,检查Qt WebEngine是否已勾选安装——注意,Qt 6.x里叫Qt WebEngine,Qt 5.x里是Qt WebEngine Widgets,名称略有差异
报错不显示红波浪线?Clang插件可能没开
写完QListWidget *w = nullptr; w->addItem("test");却没红线提示?大概率是ClangCodeModel插件被禁用了。
- 路径:
帮助 → 关于插件 → 已安装 → C++ → ClangCodeModel,确保勾选 - 勾选后必须重启Qt Creator,否则不生效
- 启用后,不仅能标红语法错误,还能在悬停时给出修复建议(比如自动补
if (w)保护),对空指针类问题特别有用
Unknown module看着像代码问题,实际是MaintenanceTool没装组件;cannot open output file像是权限问题,结果发现是杀毒软件把生成的exe删了。定位之前,先搞清信息源在哪,比盲目改代码快得多。

















