You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt6.6.1中QStateMachine框架无法找到及CMake配置报错求助

解决Qt6中QStateMachine找不到的CMake配置问题

你的CMakeLists.txt存在两处关键错误,导致QStateMachine模块无法被正确识别:

错误1:重复调用find_package时遗漏StateMachine组件

第一个find_package(QT)指令已声明需要StateMachine和Widgets组件,但后续调用find_package(Qt${QT_VERSION_MAJOR})时仅指定了Widgets,这会导致CMake无法完整加载StateMachine模块的配置信息。

修复代码:
将第二行find_package修改为:

find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets StateMachine)

错误2:链接库时硬编码Qt版本号

target_link_libraries中直接写死了Qt6::StateMachine,既破坏了Qt5/Qt6的兼容性,也会导致CMake无法通过版本变量正确匹配已找到的模块。

修复代码:
将链接语句修改为:

target_link_libraries(myProjectName PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::StateMachine)

额外检查项

  • 确认Qt6.6.1安装时勾选了Qt State Machine模块,可在Qt Creator的「工具→选项→套件→Qt版本」中查看对应套件的已安装组件,若未安装需重新运行Qt安装器添加。
  • 彻底删除项目的build文件夹,清理CMake缓存后重新配置编译,避免旧缓存残留导致的识别问题。

内容的提问来源于stack exchange,提问作者Haru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 16:32:39