点“构建”没反应或报错是因为kit配置缺失或错位,需检查工具→选项→构建与运行→kits中编译器、qt版本、调试器三项是否均显示绿色对勾;windows下mingw项目必须使用mingw32-make而非make,且qmake项目依赖qmake生成makefile后再调用对应构建工具。

qmake 生成的构建系统默认可用,但编译行为取决于你是否配置了正确的 Kit(构建套件),而不是点一下“构建”按钮就能成功。
为什么点“构建”没反应或报错?
常见现象是点击“构建项目”后毫无输出、进度条不动,或提示 Cannot run 'mingw32-make': No such file or directory。这通常不是代码问题,而是 Kit 配置缺失或错位。
- 检查 工具 → 选项 → 构建与运行 → Kits,确认当前选中的 Kit 下三项都打了绿色对勾:编译器、Qt 版本、调试器
- 如果 Qt 版本显示“未设置”,说明
qmake路径没配好;如果编译器显示“未设置”,则g++或cl.exe路径无效 - Windows 上用 MinGW 编译却没装
mingw32-make(不是make)——Qt 官方 MinGW 包自带的是mingw32-make,必须用这个
qmake 和 cmake 项目编译流程差异
Qt Creator 对两类项目底层调用不同,误配 Kit 会导致构建失败。
-
qmake项目(.pro文件存在):Qt Creator 自动调用qmake生成Makefile,再调用mingw32-make(Windows)或make(Linux/macOS)执行编译 -
cmake项目(CMakeLists.txt存在):Qt Creator 调用cmake配置生成器(如 Ninja 或 Makefile),再调用对应构建工具;此时 Kit 中的 “CMake 配置” 必须指向有效cmake可执行文件 - 项目根目录同时有
.pro和CMakeLists.txt?Qt Creator 默认优先识别.pro;想切到 CMake,需右键项目 → “添加构建步骤” → 手动切换,或删除.pro
命令行编译等价操作(用于排查和复现)
IDE 点击“构建”背后实际执行的就是这几步,出问题时直接终端里跑一遍最直观。
- 进入项目目录,确保
.pro文件存在:qmake -makefile -o Makefile yourproject.pro(显式生成 Makefile) - 再执行:
mingw32-make(Windows MinGW)或make(Linux/macOS) - 若报
Project ERROR: Unknown module(s) in QT: widgets,说明qmake加载的是 Qt4 路径,而代码用了 Qt5 的widgets模块——检查 Kit 中 Qt Version 是否指向 Qt5/Qt6 的qmake - 调试时可加
-d参数:qmake -d yourproject.pro查看模块解析过程
Debug/Release 模式切换不生效?
Qt Creator 默认为当前活动构建套件创建两个构建目录(debug 和 release),但模式切换依赖 .pro 文件中是否声明了对应 CONFIG。
- 确认
.pro文件含CONFIG += debug_and_release(否则只生成一种) - Kit 设置里,“构建配置”下拉菜单必须手动选中
Debug或Release,不能只靠CONFIG自动识别 - 修改
CONFIG后需先“清理项目”,再“重新构建”,否则旧的Makefile不会更新 - Release 模式下若 UI 元素消失,大概率是资源文件(
.qrc)未被RESOURCES +=正确引用,或路径含中文/空格
.pro 里一句 win32 作用域没闭合导致后续配置失效。每次改完配置,务必点一下 Kit 列表里的“应用”按钮,别让它只停留在界面上。











