根本原因是ninja未被qt creator在path中找到,需验证安装、添加path、重启qt creator、手动设置cmake_generator为ninja、清理build目录及避免中文路径。

Qt Creator提示“找不到ninja”或“Ninja not found”
根本原因不是Qt Creator本身缺ninja,而是它没在PATH里找到ninja可执行文件——哪怕你装了ninja,只要没加进系统环境变量,Qt Creator(尤其是非管理员启动时)就看不见。
- 先验证是否真装了:
ninja --version在终端里跑一下,有输出说明已安装;没反应就去补装(Linux用sudo apt install ninja-build,macOS用brew install ninja,Windows从GitHub releases下ninja-win.zip,解压后把ninja.exe扔进C:\Windows\System32或任意PATH目录) - Qt Creator默认不读取你手动改的用户PATH(尤其Windows下),必须重启Qt Creator——不是重开项目,是彻底关掉进程再启动
- 如果用了自定义Kit,检查Kit设置里的“CMake generator”是否真的选了
Ninja,而不是MinGW Makefiles或空着;同时确认Kit绑定的编译器路径正确(比如MinGW Kit要指向mingw_64/bin/g++.exe)
CMake配置里漏了-G Ninja参数
Qt Creator内部调CMake时,如果没显式指定生成器,它可能 fallback 到Visual Studio或Unix Makefiles,而这两者都不依赖ninja,但你的项目CMakeLists.txt又写了find_package(Qt6 REQUIRED)这类依赖Qt6的逻辑,结果就是CMake报一堆“找不到Qt::Core”——实际是生成器错配导致路径解析失败。
- 打开项目设置 → Build & Run → 对应Kit → Build → CMake Configuration,点铅笔编辑,强制加一行:
CMAKE_GENERATOR:STRING=Ninja - 别信“自动检测”,Qt Creator的自动检测在多Kit混用时经常失效;手动填死比猜靠谱
- 顺手检查
CMAKE_PREFIX_PATH是否指向你的Qt安装目录(如C:/Qt/6.8.3/msvc2022_64),否则即使ninja跑起来,也会卡在“找不到Qt头文件”
构建目录残留导致CMake缓存错乱
一旦CMake用错生成器生成过build目录,哪怕后来改了配置,它也不会自动清理旧缓存,继续沿用错误的CMakeCache.txt和CMakeFiles/,导致“明明配对了还报错”。
Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。
- 删掉整个
build/目录(不是清空,是删文件夹),再点Qt Creator的“重新运行CMake” - 如果用了Git,注意
.qtc缓存目录也可能干扰(路径类似~/.config/QtProject/qtcreator/),遇到反复失败可临时重命名该目录 - 命令行验证更可靠:进项目根目录,手动跑
cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH=/path/to/your/qt,成功了再回Qt Creator
中文路径触发moc + ninja双重故障
这不是ninja的问题,但会表现为“ninja构建失败”——因为Qt的moc工具在中文路径下直接崩溃,导致ninja拿不到目标文件,最终报subprocess error或target not found。
- 检查项目路径、Qt安装路径、甚至用户名(Windows下
C:\Users\中文名\也算中文路径),全换成英文 - Qt Creator里新建项目时,路径框里别粘贴、别拖拽,手动输全英文路径(如
D:/dev/qt-demo) - 已存在的中文路径项目,不要只改名,要整体移到新路径并重新CMake configure——旧build目录里的二进制和缓存仍带中文痕迹
真正卡住人的往往不是“没装ninja”,而是PATH没生效、CMake缓存没清、或者路径里藏着一个中文字符。三者里漏一个,Qt Creator就给你演一出“找不到ninja”的戏。










