首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未能使用CMake导入QML模块

未能使用CMake导入QML模块
EN

Stack Overflow用户
提问于 2022-11-23 15:50:21
回答 1查看 43关注 0票数 0

我目前正在按照这个CMake体系结构构建一个极简的应用程序:

-root

-QmlModule

-Component1.qml

--Component2.qml

-附录1

-主.

-主

-附录2

-主.

-主

我使用"qt6_add_qml_module“作为静态库在"QmlModule”级别创建QML模块。

代码语言:javascript
运行
复制
qt_add_library(myComponentTarget STATIC)
qt6_add_qml_module(myComponentTarget
URI QmlModule
VERSION 1.0
QML_FILES
    Component1.qml
    Component2.qml
RESOURCES
    logo.png)

然后,在App1 (和App2)级别,使用"target_link_libraries“完成到模块的链接。"qt6_add_qml_module“在幕后做了一些工作,以便通过一个名为"your_component_URIplugin”的自动生成插件来公开模块。关于这个这里的更多细节。

代码语言:javascript
运行
复制
add_executable(App1Exe 
    main.cpp)
qt6_add_qml_module(App1Exe
    URI App1
        VERSION 1.0
    QML_FILES
        main.qml)
target_link_libraries(App1Exe 
    PRIVATE 
    myComponentURIplugin)

在根级,我重载QML_IMPORT_PATH以便链接到构建文件夹并添加所有子目录。

代码语言:javascript
运行
复制
set(QML_IMPORT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/qmlModule)
add_subdirectory(QmlModule)
add_subdirectory(App1)
add_subdirectory(App2)

我运行CMake,没有任何错误,并打开App1/main.qml文件。在我的import QmlModule上,找不到模块:

模块"lupinComponentsplugin“未安装

如何使我的模块从我的应用程序可见?我错过了哪一步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 14:37:03

CMake本身很好,这是一个运行时错误,而不是链接错误。

提出这个问题是因为QQmlApplicationEngine没有找到通向我模块QMLDIR的路径。最后,QQmlEngine中唯一缺少的是一个额外的导入路径":/“:

代码语言:javascript
运行
复制
QQmlApplicationEngine engine;
engine.addImportPath(":/");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74549582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档