静态链接应用程序中未找到模块“QtQuick”插件“qtquick2plugin”。

10
我已经构建了Qt库的静态版本,并编译了基于QtQuick2ApplicationViewer的测试应用程序。但是当启动它时,会产生一个错误:
file:///F:/qt_projects/untitled9-build-5_0_0_static-__________________________/qml/untitled9/main.qml:1:1: module "QtQuick" plugin "qtquick2plugin" not found 
     import QtQuick 2.0 
     ^ 
Remove me: fixing toplevel window flags
Unable to find a renderable master window QtQuick2ApplicationViewer(0x28fe38) when trying to render QtQuick2ApplicationViewer(0x28fe38)  ( QRect(8,30 116x0) ). 

我该如何将“qtquick2plugin”插件添加到我的应用程序中?
2个回答

4

我有同样的问题。我已向Qt社区发送了错误报告:

https://bugreports.qt-project.org/browse/QTBUG-28357

这个链接包含了你问题的描述和我的解决方案。不幸的是,它并没有帮助到我,但真的可能会对您的情况有所帮助或者只是澄清情况。


我有同样的问题,我测试了建议的解决方案。不起作用! - S.M.Mousavi

1

在配置静态构建时,Qt会发出警告(至少在最近的版本中是这样的):

注意:使用静态链接将禁用动态加载的插件。确保导入所有必需的静态插件或将所需模块编译到库中。

qtquick2plugin显然就是其中之一。此处还有相关文档

对于CMake,在Qt 5.14及以上版本中,有一个qt5_import_qml_plugins函数(希望在Qt 6中也有qt6_import_qml_plugins):

get_target_property(QT_TARGET_TYPE Qt5::Core TYPE)
if(${QT_TARGET_TYPE} STREQUAL "STATIC_LIBRARY")
    find_package(Qt5QmlImportScanner REQUIRED)
    qt5_import_qml_plugins(${CMAKE_PROJECT_NAME})
endif()

对于 Qt 版本早于 5.14 的用户,可以使用 这个外部模块

1
适用于Qt6,需要进行一些明显的更改:Qt6QmlImportScannerqt6_import_qml_plugins... 谢谢! - cbuchart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接