我正在将解决方案中的Qt从Qt5升级到Qt6 (6.3)。在运行基于qml的项目时,我会收到无法加载qtquickcontrols2plugin.dll的错误--缺少指定的模块。我已经与dependency检查过了,.dll需要Qt6Qml.dll、Qt6Core.dll、Qt6QuickControls2.dll,它们都接近部署目录中的可执行文件。
插件dll位于folder_with_executable\QtQuick\Controls目录下。qmldir文件如下所示:
module QtQuick.Controls
linktarget Qt6::qtquickcontrols2plugin
plugin qtquickcontrols2plugin
classname QtQuickControls2Plugin
designersupported
typeinfo plugins.qmltypes
import QtQuick.Controls.impl auto
optional import QtQuick.Controls.Basic auto
optional import QtQuick.Controls.Fusion auto
optional import QtQuick.Controls.Material auto
optional import QtQuick.Controls.Imagine auto
optional import QtQuick.Controls.Universal auto
optional import QtQuick.Controls.Windows auto
optional import QtQuick.Controls.macOS auto
prefer :/qt-project.org/imports/QtQuick/Controls/
有人能帮忙吗?qml的文件夹目录正确吗?我正在使用预编译的mingw部署windows 10上的windows。
发布于 2022-09-19 21:59:41
看来你的答案用windeployqt
解决了。这是在Windows上打包应用程序的推荐方法,因为您永远不知道什么时候会出现新的依赖项,但是您可以依赖于Qt将保持该工具的最新。
发布于 2022-10-30 17:53:44
我实际上是如何解决这个问题的,而不需要使用windeployqt:在我用上面的解决方案在Windows上成功地配置了系统之后,我也对Linux进行了同样的配置。但是没有用于Linux的windeployqt。搜索了一段时间之后,我找到了调试问题的解决方案:设置环境变量QT_DEBUG_PLUGINS并运行程序。这显示了图书馆实际上丢失了什么。在将所有必需的库添加到CMakeLists.txt之后,我对Linux进行了配置,并确保安装对Linux有效,并且我将安装cmake命令调整到Windows。啊,真灵。我也能够成功地在Windows上安装,而无需使用win部署to。
https://stackoverflow.com/questions/73765760
复制相似问题