能直接配好但“不踩坑”需三步:检查cmake和编译器是否真在系统path里;在qt creator的kits中手动绑定编译器、qt版本及cmake生成器;cmakelists.txt开头必须显式调用find_package(qt6)或find_package(qt5)并指定所需组件。

CMake 和 Qt Creator 能直接配好,但“能用”和“不踩坑”之间差三步:PATH、Kit 绑定、CMakeLists.txt 里不漏 find_package(Qt6) 或 find_package(Qt5)。
检查 CMake 和编译器是否真在系统 PATH 里
Qt Creator 不会自己猜你装了什么——它只认 PATH 里能直接敲出来的命令。很多人点“配置 Kit”时看到编译器或 CMake 灰掉,其实是环境变量没生效。
- 打开终端(Windows 用 PowerShell,Linux/macOS 用 shell),运行:
cmake --version、g++ --version(MinGW)或cl(MSVC)。全有输出才算到位 - 如果报“command not found”,别信 Qt 安装包自带的路径——手动把 CMake 的
bin/和 MinGW 的bin/(如D:\Qt\Tools\mingw110_64\bin)加进系统 PATH,然后彻底重启 Qt Creator - MinGW 用户特别注意:
mingw32-make必须存在且可调用;Qt Creator 默认用它,不是make或ninja
在 Kits 里手动绑定编译器 + Qt 版本 + CMake 生成器
自动检测经常漏项,尤其是 Qt 版本没关联上时,构建会卡在 “Could not find a package configuration file provided by ‘Qt6’”。
CMake 4.3.2 Windows x86_64 历史版本安装包,适合旧项目兼容、构建环境回退、CMakeLists.txt 迁移验证、Visual Studio/Ninja/Makefile 生成器测试和 C/C++ 项目维护。
- 进
Tools → Options → Kits,在Compilers页确认已列出你的g++(MinGW)或cl(MSVC) - 在
Debuggers页确保有对应调试器(MinGW 对应gdb,MSVC 对应cdb或 Windows SDK 自带调试器) - 在
Kits页新建一项,关键三选一必须手动指定:
–Compiler:选你刚确认的那一个
–Qt version:选你安装的 Qt 5.15.2 或 Qt 6.x(不能是“None”)
–CMake generator:MinGW 选MinGW Makefiles,MSVC 选Visual Studio 17 2022(版本号按你实际装的填)
CMakeLists.txt 开头必须显式声明 Qt 版本和组件
哪怕你只写了个 main.cpp,没这几句,Qt Creator 就找不到 QApplication、QWidget 这些类,报错全指向头文件缺失。
- 最简有效开头(Qt 6 示例):
cmake_minimum_required(VERSION 3.16) project(myapp LANGUAGES CXX) find_package(Qt6 REQUIRED COMPONENTS Core Widgets Gui) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(myapp main.cpp) target_link_libraries(myapp PRIVATE Qt6::Core Qt6::Widgets Qt6::Gui)
- Qt 5 用户把
Qt6全换成Qt5,并确保find_package后加REQUIRED;否则 CMake 会静默跳过,后续链接失败 - 别依赖
qt_add_executable或qt_standard_project_setup这类宏——它们只在 Qt 6.5+ 官方模板里默认启用,老版本或手写 CMakeLists.txt 里不生效
构建目录别放源码根目录,也别用空格中文路径
Qt Creator 默认把构建目录设成 build-myapp-Desktop_Qt_6_7_3_MinGW_64bit-Debug 这种长名,看着乱,但它是故意的:避免源码污染,且兼容不同 Kit 切换。
- 手动改构建路径时,确保路径纯英文、无空格、无中文;
C:/my project/app会导致 CMake 报Parse error in command line argument - 不要把
build/放进src/或cmake-build-debug/这类 JetBrains 风格目录——Qt Creator 的 Kit 切换逻辑依赖固定命名规则 - 第一次 Configure 失败后,别急着删整个 build 目录;先看
Compile Output页最后一行错误,90% 是Qt6_DIR没找到或CMAKE_PREFIX_PATH指向了错的 Qt 安装路径
最容易被忽略的是:Qt Creator 的 Kit 配置和 CMakeLists.txt 是两套独立系统。Kit 设对了,CMakeLists.txt 里没 find_package,照样编译不过;反过来,CMakeLists.txt 写全了,Kit 里 Qt version 选成 “None”,Qt Creator 就不会给你语法补全、信号槽自动连接这些核心功能。










