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

qt_add_qml_module的DEPENDENCIES TARGET未自动处理QML模块路径问题

关于Qt现代QML模块DEPENDENCIES依赖与QT_QML_OUTPUT_DIRECTORY的问题

Qt官方文档《Modern QML modules》指出,若在QML模块的DEPENDENCIES目标中声明依赖,则无需设置QT_QML_OUTPUT_DIRECTORY变量,但实际测试中该结论不成立。

测试项目结构

DynamicLinkingCustomStructureModernExample
│   CMakeLists.txt
└───sources
    │   CMakeLists.txt
    ├───App
    │       CMakeLists.txt
    │       main.cpp
    │       Main.qml
    └───Modules
        │   CMakeLists.txt
        └───ModuleA
                CMakeLists.txt
                ItemA.qml

问题详情

ModuleA的URI为Modules.ModuleA,App模块通过DEPENDENCIES TARGET依赖ModuleA。编译完成后出现以下路径不匹配问题:

  • ModuleA的生成路径为build\Desktop_Qt_6_8_2_llvm_mingw_64_bit-Debug\sources\Modules\ModuleA
  • Qt工具链自动添加的QML导入路径为build\Desktop_Qt_6_8_2_llvm_mingw_64_bit-Debug\sources\Modules

该问题直接引发两个加载失败场景:

  • Main.qml中执行import Modules.ModuleA时,无法定位到模块文件
  • 尝试改用import ModuleA,会因Qt强制要求使用完整URI而报错

临时解决办法

手动将sources路径添加到QML导入列表后,模块可正常被识别和加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 12:42:34