Kit显示Invalid或“No compiler set”时,需依次检查编译器、Qt版本、调试器是否绑定且路径有效,确保三者ABI匹配、架构一致(如x64)、不可混用MinGW与MSVC,并通过Developer Command Prompt启动Qt Creator以继承环境变量。

编译失败不是代码写错了,大概率是 Qt Creator 没搞清楚“该用谁、在哪、怎么编”。先别改代码,按顺序查这三件事。
Kit 显示 Invalid 或 “No compiler set” 怎么办
这是最常卡住的第一步。Qt Creator 的 Kit(构建套件)必须明确绑定编译器、Qt 版本和调试器,缺一不可。
- 打开 工具 → 选项 → 构建与运行 → Kits,看当前选中的 Kit 是否标黄或显示
Invalid - 点开它,检查
Compiler和Qt version是否都已选择——如果下拉框为空,说明 Qt Creator 没扫描到可用项 - 去
Compilers标签页确认编译器路径是否有效:比如g++在 Linux/macOS,cl.exe或mingw32-make.exe在 Windows,路径必须指向真实可执行文件 - 去
Qt Versions标签页,确认qmake或cmake路径正确,且对应 Qt SDK 架构(x86/x64)与编译器一致 - 常见坑:
MinGW和MSVC不能混用;Qt6 的qmake不兼容 Qt5 项目,反之亦然
CMake 配置失败:“Could NOT find Qt6::Widgets” 类错误
这类报错本质是 CMake 找不到 Qt 模块,不是 Qt 安装坏了,而是 find_package 没配对或路径没暴露。
- 确保
CMakeLists.txt中find_package声明了所有用到的模块,例如:find_package(Qt6 REQUIRED COMPONENTS Core Widgets) - 检查
target_link_libraries是否包含对应模块,例如:target_link_libraries(myapp PRIVATE Qt6::Widgets) - 在 Qt Creator 的项目设置里,确认 Kit 绑定的 Qt 版本支持 CMake(Qt6.2+ 默认支持,Qt5 需手动启用)
- Windows 下若用 MSVC,务必通过 Visual Studio 的
Developer Command Prompt启动 Qt Creator,否则环境变量(如VCINSTALLDIR)不生效,CMake 就找不到编译器 - Linux/macOS 上,避免全局设置
LD_LIBRARY_PATH,它会干扰 Qt Creator 自带的 Qt 运行时加载
“cannot open output file” 或 “Access is denied”
链接器写不出可执行文件,通常不是磁盘满了,而是进程锁、权限或杀软在拦。
- 检查
build目录下是否有残留的.exe或.dll正被系统占用——任务管理器里搜进程名,结束掉再试 - 右键项目目录 → 属性 → 安全 → 确认当前用户有
完全控制权限,尤其debug和release子目录 - 临时关闭杀毒软件(特别是 360、火绒、Windows Defender 实时防护),它们常静默拦截 Qt 生成的二进制
- Windows 下若提示
Access is denied,尝试以管理员身份运行 Qt Creator(仅临时,非长期方案) - 路径含中文、空格或特殊字符(如
My Project (v2))也会触发此错误,一律改用纯英文无空格路径
编译通过但运行时报“程序异常结束”
这已经不是编译问题,而是运行时环境缺失。Qt Creator 启动程序的方式和你双击 exe 不一样。
- 右键项目 → 运行设置 → 运行,检查
工作目录是否设为build目录(即.exe所在位置) - 点开
运行环境,确认LD_LIBRARY_PATH(Linux)或PATH(Windows)里包含 Qt 的bin目录,否则找不到Qt6Core.dll等依赖 - Windows 下用
Dependency Walker或Process Explorer查看崩溃时缺哪个 DLL;Linux 下用ldd ./yourapp - 如果只在 Qt Creator 里崩溃,独立运行正常,大概率是工作目录不对或环境变量没继承过来
真正麻烦的从来不是单个错误,而是多个配置层(Kit、CMake、系统环境、杀软)叠在一起出问题。每次只改一个变量,验证一次,不然你永远不知道是哪个环节悄悄坏了。











