kit配置失败源于编译器、qt版本或调试器任一缺失或不匹配;需逐一验证路径有效性、abi兼容性及环境变量生效情况,确保三者精确绑定且命令可直接执行。

Kit 配置失败不是 Qt Creator 本身的问题,而是它没找到可用的编译器、Qt 版本或调试器三者中任意一个。只要缺一环,No valid kits found 就会一直红着。
Kit 检测不到编译器:先确认路径和权限
Qt Creator 不会主动扫描全盘找 g++ 或 cl.exe,它只查你指定的路径或系统 PATH 中能直接调用的命令。常见卡点:
- Linux 上装了
build-essential,但没运行sudo apt install g++单独确认; - Windows 用 MSVC,
cl.exe在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\,但该目录没加进系统PATH; - macOS 装了 Xcode 命令行工具,但没执行
xcode-select --install或执行后没重启 Qt Creator; - MinGW 安装路径含空格(如
C:\Program Files\mingw64),Qt Creator 解析失败——必须用无空格路径,比如C:\mingw64。
Qt 版本显示“None”或灰色不可选
这说明 Qt Creator 找到了编译器,但没找到匹配的 qmake 或 cmake 工具。关键不是“有没有 Qt”,而是“有没有对应编译器 ABI 的 Qt 构建版本”:
Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。
- MSVC 2015 编译器只能配
Desktop Qt 5.15.2 MSVC2015 64-bit,不能混用 MinGW 版; - Ubuntu 上用
apt install qtbase5-dev装的是开发头文件,不是可运行的 Qt 构建版——得用在线安装器装完整Qt 5.15.2或Qt 6.5.0; - macOS 用 Homebrew 装的
qt,其qmake在/opt/homebrew/opt/qt/bin/qmake,必须手动添加到 Qt Creator 的Qt Versions页面; - Qt Creator 启动前没 source 过环境变量(比如 macOS 的
~/.zshrc),会导致它读不到你设的PATH。
Debugger 显示“Not found”但项目能编译
能编译 ≠ 能调试。GDB/LLDB/cl 带的调试器是独立组件,不随编译器自动就位:
- Linux 下装
gdb得明确运行sudo apt install gdb,光有g++不够; - Windows MinGW 用户容易漏掉
mingw-w64-x86_64-gdb(MSYS2)或安装时没勾选MinGW Debug Information Files; - MSVC 的调试器就是
cdb.exe,路径在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\,需手动填入; - Qt Creator 6.x 默认禁用 GDB 的 Python 支持,如果用了自定义
gdb,得确认它编译时带--with-python,否则断点可能不生效。
交叉编译 Kit 总是灰色:工具链路径必须精确到可执行文件
ARM 或 RISC-V 交叉编译不是“选个目录”就行,Qt Creator 要求每个工具都指向具体二进制:
-
Compiler path必须是arm-linux-gnueabihf-gcc,不是/opt/arm-toolchain/bin/; -
Qt version对应的qmake必须是交叉编译版,比如~/qt-arm/qtbase/bin/qmake,普通桌面版的qmake会直接报错; - 交叉
qmake运行时依赖libstdc++.so.6等库,如果目标机架构与宿主机不一致(如 aarch64 宿主机跑 arm32 工具链),可能因 ABI 不兼容静默失败; - 建议先在终端手动跑一遍:
arm-linux-gnueabihf-gcc --version和~/qt-arm/qtbase/bin/qmake -v,确保两者都能执行且输出合理。
Kit 配置最麻烦的地方不在步骤多,而在所有路径都得“当场有效”——Qt Creator 不缓存、不猜测、不 fallback。哪怕 qmake 路径少一个字符,或者 gdb 版本太旧不支持当前 Qt 的调试符号格式,它就直接放弃,连提示都懒得给。动手前,先在 shell 里一条条敲通命令,比在 GUI 里反复点“Apply”快得多。










