qmake生成的构建系统默认可用,但编译成功取决于Kit配置正确、.pro文件模块完整及moc处理到位;需确认Kit带绿色对勾、手动执行qmake、检查Makefile生成及路径无空格中文、切换Debug/Release后重新qmake。

qmake 生成的构建系统默认可用,但真正决定能否编译成功的,是 Qt Creator 中「Kit」是否选对、.pro 文件里有没有漏掉模块、以及源码是否通过 moc 处理——这三处出错,90% 的编译失败都卡在这儿。
点击绿色三角按钮前,先确认 Kit 是否激活
左下角工具栏显示的 Kit(比如 Desktop Qt 6.5.3 MinGW 64-bit)必须带绿色对勾。如果灰着,说明:
• 编译器(如 MinGW 或 MSVC)没装或路径不对
• Qt 版本未注册到 Qt Creator(需在 工具 → 选项 → 构建与运行 → Qt 版本 手动添加 qmake.exe 路径)
• Kit 对应的调试器缺失(尤其 MSVC 下缺 cdb.exe,会导致构建能过但调试打不开)
qmake 没跑或跑错了,.pro 修改后不会自动生效
Qt Creator 不像 VS 那样监听文件变更自动重生成 Makefile。
• 修改了 .pro(比如加了 QT += widgets 或删了 CONFIG -= qt),必须手动触发 qmake
• 方法:右键项目名 → 执行 qmake,或点击菜单 构建 → 运行 qmake
• 常见坑:改完 .pro 直接点 ▶️,结果报 undefined reference to `vtable for XXX' —— 八成是 moc 没跑,根源就是 qmake 没重执行
Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。
编译输出窗口里看到 mingw32-make: *** No targets specified and no makefile found.
这不是编译器问题,是构建目录里压根没生成 Makefile。
• 检查项目根目录下是否有 build-xxx 文件夹,且里面是否含 Makefile
• 如果没有,说明 qmake 根本没成功运行(看 编译输出 窗口顶部有没有 Running 'C:\Qt\6.5.3\mingw_64\bin\qmake.exe' ... 日志)
• 更隐蔽的情况:项目路径含空格或中文(比如 C:\My Projects\test),qmake 会静默失败,日志里只显示 Project ERROR: Cannot run target 'qmake',但不报红
Debug/Release 切换影响实际编译行为
左下角 Kit 旁的构建套件下拉菜单,选的是 Debug 还是 Release,不只是影响优化等级:
• Debug 模式会启用 CONFIG += debug_and_release 和符号表生成,链接时多加载调试库(如 Qt6Cored.dll)
• Release 模式默认禁用 console 子系统(Windows 下 GUI 程序不弹黑窗),但如果你的 .pro 里写了 CONFIG += console,它就仍会弹窗
• 切换后必须重新 执行 qmake,否则旧 Makefile 仍按上一模式配置
真正卡住编译的,往往不是语法错误,而是构建上下文没对齐:Kit、qmake、构建目录、.pro 四者状态不一致。每次改完配置,养成先看 编译输出 里第一行是不是 Running qmake... 的习惯,比盯着报错行逐条猜快得多。

















