7

我构建了 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”添加到我的应用程序中?

4

2 回答 2

3

我也有同样的问题。我已将错误报告发送到 Qt 社区:

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

此链接包含描述和我对您的问题的解决方案。不幸的是,它对我没有帮助,但确实可能对您的情况有所帮助或只是清除情况。

于 2012-12-07T06:28:03.200 回答
0

Qt 在配置静态构建时对此发出警告(或者至少在最近的版本中这样做):

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

qtquick2plugin显然是其中之一。这里还有一些关于此事的文档。

对于 CMake,从 Qt 5.14 开始,有qt5_import_qml_plugins函数(希望qt6_import_qml_plugins在 Qt 6 中也是如此):

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()

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

于 2021-11-07T22:09:48.513 回答