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

无qtchooser配置时CMake调用qmlcachegen找不到Qt的责任问询

问题1解答

这个不属于操作系统层面的责任,实际是Linux发行版的Qt打包策略决定的。绝大多数支持多Qt版本并行安装的发行版(比如Debian、Ubuntu及其衍生版),默认不会创建全局default.conf,目的是避免不同Qt版本的全局配置冲突,给同时需要Qt4、Qt5、Qt6开发的用户造成干扰。如果需要全局默认Qt版本,用户可以自行在对应路径创建配置文件,部分发行版也提供了交互命令(如update-alternatives)可以一键切换默认Qt版本。

问题2解答

这个责任不在CMake本身,而属于Qt官方提供的Qt5QuickCompiler CMake模块的设计缺陷。CMake本身只是执行Qt提供的模块逻辑,而Qt的该模块在调用qmlcachegen时,没有将find_package阶段获取到的Qt路径作为环境变量或参数传递给qmlcachegen,才会出现你遇到的问题。

临时修复方案

你可以通过以下任一方法快速解决当前问题:

  1. 执行CMake配置命令时直接携带环境变量:
QT_SELECT=5 cmake -DCMAKE_PREFIX_PATH=/path/to/qt 其他参数..
  1. 在CMakeLists.txt的find_package(Qt5QuickCompiler)之前添加环境变量设置:
set(ENV{QT_SELECT} 5)
  1. 手动修改系统中Qt5QuickCompilerConfig.cmake的qmlcachegen调用逻辑,给执行命令前缀加上env QT_SELECT=5。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:36:01