kit未配置是qt creator 6升级qt 6后最常见问题,根源在于qt version、compiler、debugger三者未对齐或cmake/qmake未识别qt 6新约定,需手动绑定qmake路径、确认编译器版本匹配、修正cmakelists.txt中find_package和target_link_libraries语法,并确保c++17标准及运行时库配置正确。

Qt Creator 升级到 Qt 6 后报错,大概率不是 Qt Creator 自身坏了,而是 Kit 配置断裂或工具链不匹配。核心问题往往出在“Qt Version + Compiler + Debugger”三者没对齐,或者 CMake/qmake 构建系统没识别到 Qt 6 的新约定。
Kit 显示 “Unconfigured” 或 “No valid kits found”
这是最常见也最容易被误判为“安装失败”的现象。Qt Creator 不会自动注册你磁盘上已有的 Qt 6 安装路径,必须手动绑定。
- 打开 Options → Kits → Qt Versions,点击
+,浏览到你的 Qt 6 安装目录下的bin/qmake.exe(MSVC)或bin/qmake(MinGW/Linux),例如C:\Qt\6.5.3\msvc2019_64\bin\qmake.exe - 再切到 Compilers 标签页,确认对应编译器已存在:MSVC 要选中
Microsoft Visual C++ compiler 19.29这类带具体版本号的条目;MinGW 要确保g++.exe路径不含空格或中文,且能执行g++ --version - 最后在 Kits 标签页点击
+新建一个 Kit,手动指定刚才添加的 Qt Version 和 Compiler;Debugger 通常会自动填入,若显示Not found,说明调试器未安装或路径异常(如 MSVC 需要 Windows SDK + CDB,MinGW 需要 GDB)
CMake 配置失败:提示 “configuration failed” 或找不到 Qt6Core
Qt 6 彻底弃用了 find_package(Qt5 ...),所有模块名都带 Qt6 前缀,且 CMake 必须通过 find_package(Qt6 REQUIRED COMPONENTS Core Widgets) 显式声明。老项目沿用 Qt5 写法必然失败。
Qt Creator 18.0.2 Windows x86_64 历史版本安装包,适合需要旧版本 IDE、旧项目兼容、Qt/C++ 项目维护、构建套件配置和调试环境回退的用户使用。
- 检查
CMakeLists.txt开头是否有project(... LANGUAGES CXX),且project()必须在set(CMAKE_CXX_STANDARD 17)之前 —— 顺序反了会导致 MSVC 编译器不启用/Zc:__cplusplus - 替换所有
find_package(Qt5 ...)为find_package(Qt6 REQUIRED COMPONENTS Core Widgets Gui Network),并把target_link_libraries(... Qt5::Core)改成Qt6::Core - 若使用 MSVC,必须加
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$:Debug>DLL"),否则 Qt6 链接时会因运行时库不一致崩溃
编译时报错 “Qt requires a C++17 compiler”
这个错误本质是 MSVC 的 __cplusplus 宏没更新,不是编译器不支持 C++17。即使你写了 set(CMAKE_CXX_STANDARD 17),MSVC 默认仍返回 C++98 的宏值。
- 必须显式添加编译选项:
add_compile_options(/Zc:__cplusplus)(仅 Windows MSVC) - 该选项不能只加在某个 target 上,得全局生效:放在
project()之后、任何add_executable()之前 - 验证是否生效:在任意源文件里加
#pragma message("CPLUSPLUS = " STRINGIFY(__cplusplus)),编译后看输出是否为201703L
运行时报 undefined symbol 或闪退
这类问题多见于 Linux/macOS,根源常是动态库加载路径污染或 ABI 不兼容,尤其当你在 shell 中设过 LD_LIBRARY_PATH 或 PATH 指向旧版 Qt 库时。
- 绝对不要在
~/.bashrc或~/.zshrc里硬编码export LD_LIBRARY_PATH=/path/to/Qt/6.5.3/lib:$LD_LIBRARY_PATH—— Qt Creator 自带的 Qt 运行时会被覆盖,导致符号错乱 - Linux 下检查缺失依赖:
ldd ./your_app | grep "not found",补全对应-dev包,如libgl1-mesa-dev、libxkbcommon-dev - macOS 上注意 Qt 6 默认用
@rpath,若用install_name_tool手动改过路径,需同步修正所有依赖项的 rpath,否则运行时找不到Qt6Gui等库
真正卡住人的地方,往往不是某一行代码写错了,而是 Qt Version、Compiler、CMakeLists 三者之间有一处隐式耦合没对齐 —— 比如 Qt 6.5.3 msvc2019_64 只能配 MSVC 19.29,配 19.36 就可能链接失败;又比如 find_package(Qt6) 成功了,但 target_link_libraries 里漏了 Qt6::Core,链接阶段才爆 undefined symbol。这些细节不跑一遍构建流程根本暴露不出来。










