qt creator找不到msvc编译器,主因是其仅扫描固定路径(如vs2019的vc\tools\msvc\),而vs2015等旧版或build tools安装路径不同;需手动添加cl.exe路径,并确保kit中编译器、qt版本、调试器三者abi严格一致。

Qt Creator 里找不到 MSVC 编译器套件
Qt Creator 不会自动识别所有已安装的 MSVC,尤其当你装的是 Visual Studio Build Tools 或只选了部分组件时,cl.exe 可能根本不在默认路径里。它只扫描几个固定目录,比如 C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Tools\MSVC\ 这类结构,而 VS2015 的路径是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe,旧版路径不被新版 Qt Creator 默认覆盖。
手动添加前先确认编译器存在:
- 打开文件管理器,直接访问 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\
- 看是否有 cl.exe;没有就回 VS 安装器补装“Visual C++”完整组件
- 再去 Qt Creator → 工具 → 选项 → 构建与运行 → 编译器 → 添加 → Microsoft → “Desktop MSVC 2015 64bit”
- 手动指定 cl.exe 路径,别依赖自动检测
常见错误现象:
- 套件列表里显示“Compiler not found”或“Unknown compiler”
- qmake 报错:“Project ERROR: Cannot run compiler ‘cl’”
- Kit 显示黄色感叹号,提示“Debugger not set up”,其实是编译器没配好导致连锁失败
Kit 配置时 Debugger 和 Qt 版本不匹配
一个 Kit 必须同时满足三个条件才有效:有可用的编译器、有对应 ABI 的 Qt 版本、有兼容的调试器。三者 ABI(如 win64_msvc2015_64)必须完全一致,差一个字符都白搭。
实操建议:
- 先在“Qt Versions”页里点“Add”,指向 C:\Qt\5.15.2\msvc2015_64\bin\qmake.exe(路径按你实际安装调整)
- 再去“Debuggers”页,添加 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe(不是 windbg,也不是 vsjitdebugger)
- 最后在“Kits”页新建 Kit,下拉选择刚加的编译器、Qt 版本、Debugger,ABI 自动填充,别手改
- 如果用了 MinGW 编译的 Qt,却配了 MSVC 编译器,Kit 会静默失效,只报“no valid kits”
Ubuntu 下 qmake 找不到或版本混乱
Ubuntu 的 qt5-qmake 包安装的是符号链接 /usr/bin/qmake,它指向 /usr/lib/x86_64-linux-gnu/qt5/bin/qmake,但 Qt Creator 默认只认 /usr/bin/qmake。如果系统里还装了 Qt6 或自己编译过 Qt5,qmake --version 输出可能和 Qt Creator 实际加载的不一致。
验证和修复步骤:
- 终端运行 which qmake 和 qmake --version
- 在 Qt Creator → Qt Versions → Add,明确指向 /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
- 不要用 /usr/bin/qmake,因为它是多版本切换代理,Qt Creator 解析不稳定
- 若装了多个 Qt 版本,建议用 qtchooser -install qt5 /usr/lib/x86_64-linux-gnu/qt5/bin/qmake 显式绑定
WSL2 中 Qt Creator 启动报 “Could not detect any valid kits”
WSL2 默认不带 GUI 支持,Qt Creator 无法调用 X11 或 Wayland,但它仍会尝试扫描本地 Windows 的 MSVC 路径(比如 C:\Program Files...),而这些路径在 WSL2 里映射为 /mnt/c/Program Files...,权限和路径分隔符(反斜杠 vs 正斜杠)会导致检测失败。
正确做法:
- 在 WSL2 里只用 Linux 工具链:装 g++、qtbase5-dev、qt5-qmake
- Qt Creator 必须在 Windows 上运行(不是 WSL2 内部),通过 X Server(如 VcXsrv)显示界面
- Kit 的编译器选 “GCC (x86_64-linux-gnu)”,Qt 版本指向 WSL2 内的 /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
- 别试图让 WSL2 内的 Qt Creator 调用 Windows 的 MSVC,路径、环境变量、注册表全不通
最容易被忽略的一点:Qt Creator 的 Kit 配置是 per-user 的,Windows 和 WSL2 是两套独立配置,不能复用。你在 Windows 里配好的 Kit,对 WSL2 中运行的 Qt Creator 完全无效——哪怕它显示的是同一个可执行文件路径。











