Qt Creator中CMake配置失败主因是Kit未正确绑定编译器或环境变量未继承,需检查Compilers和Kits设置、清空构建目录、确保find_package(Qt6)显式声明COMPONENTS且大小写正确。

Qt Creator 里 CMake 配置失败,90% 是 Kit 没对上编译器或环境变量没继承,不是代码写错了。
Kit 中编译器路径为空或不匹配
Qt Creator 的 Kit(工具链)必须明确指定 C/C++ 编译器路径,否则 CMake 会报 The C++ compiler is not able to compile a simple test program。即使你装了 Visual Studio 或 MinGW,Qt Creator 也不会自动发现它们——它只认你在 Tools → Options → Kits → Compilers 里手动注册的路径。
- 检查
Compilers标签页:确认已添加对应版本的 MSVC(如Microsoft Visual C++ Compiler 14.4 (x64))或 MinGW(如MinGW 13.1.0 64-bit),路径指向真实的cl.exe或g++.exe - 检查
Kits标签页:选中目标 Kit,确保C Compiler和C++ Compiler都选中了上面注册好的编译器,且Debugger也匹配(比如 MSVC 对应cdb,MinGW 对应gdb) - 常见坑:
cl.exe路径别抄网上的旧路径(如VC\bin\x86_amd64\cl.exe),VS 2022 默认路径是MSVC\14.4\bin\Hostx64\x64\cl.exe;MinGW 则优先用 Qt 安装器自带的,而非自行下载的独立版
CMake 构建目录未清空或权限不足
CMake 在构建前会生成缓存文件(CMakeCache.txt、CMakeFiles/ 等),如果之前配置失败过,残留状态会导致后续 configure 直接报错,比如 No CMake configuration found 或静默失败。
CMake 4.3.2 Windows x86_64 历史版本安装包,适合旧项目兼容、构建环境回退、CMakeLists.txt 迁移验证、Visual Studio/Ninja/Makefile 生成器测试和 C/C++ 项目维护。
- 在 Qt Creator 中右键项目 →
Clean Project不够彻底,要手动删掉整个构建目录(默认是build-xxx-Desktop_Qt_6_x_x_MinGW_64bit-Debug这类名字) - Linux 下注意权限:如果曾用
sudo qtcreator启动过,构建目录可能属 root,普通用户再构建会因写入失败而卡住 - Windows 上若构建目录在 OneDrive 或 Defender 实时保护太激进,也可能导致
cmake -E env执行超时或被拦截
CMakeLists.txt 中 find_package(Qt6) 缺少 COMPONENTS
Qt 6 默认关闭模块懒加载,find_package(Qt6 REQUIRED) 只能找到 Qt6::Core,其他模块(如 Widgets、Network)必须显式声明,否则链接阶段报 undefined reference,configure 阶段也可能提示 Could NOT find Qt6::Widgets。
- 正确写法:
find_package(Qt6 REQUIRED COMPONENTS Core Widgets Network) - 注意大小写:Qt 6 要求模块名全大写,
widgets或WIDGETS都不行,只能是Widgets - Qt 版本要和 Kit 匹配:Kit 选的是
msvc2019_64,CMake 就得用对应编译器构建的 Qt 6(比如Qt 6.5.3 MSVC2019 64-bit),混用mingw_64Kit 和msvcQt 会找不到库
Linux 下 LD_LIBRARY_PATH 干扰 Qt Creator 自身运行
在 ~/.bashrc 里加了 export LD_LIBRARY_PATH=.../Qt/6.x/gcc_64/lib:$LD_LIBRARY_PATH,会导致 Qt Creator 启动时加载错误版本的 Qt 库,直接崩溃或 CMake 配置失败,报 undefined symbol 或 configuration failed。
- 根本解法:删掉
LD_LIBRARY_PATH相关行,Qt Creator 自带运行时库,不需要外部干预 - 开发时需要链接 Qt 库?用
target_link_libraries(your_target PRIVATE Qt6::Widgets)即可,CMake 会自动处理路径 - 系统级依赖缺失也要补:Ubuntu/Debian 下至少装
libgl1-mesa-dev libxkbcommon-dev libx11-xcb-dev,否则 CMake configure 阶段就终止
真正麻烦的从来不是 CMake 语法,而是 Qt Creator 没拿到正确的环境上下文——它不知道你电脑里装了什么、在哪、能不能用。每次配置失败,先看 Kit 是否完整绑定编译器+Qt 版本+调试器,再清构建目录,最后检查 CMakeLists.txt 里有没有漏 COMPONENTS。这三步走完,八成问题就没了。

















