使用 MinGW 和 Qt5.6 部署应用程序

Posted

技术标签:

【中文标题】使用 MinGW 和 Qt5.6 部署应用程序【英文标题】:Application deployment with MinGW and Qt5.6 【发布时间】:2016-04-06 14:44:57 【问题描述】:

最终目标是从 Qt Creator 中运行基于 Qt5.6 的应用程序。我发现有一个工具C:\Qt\5.6\mingw49_32\bin\windeployqt.exe。所以我执行如下:

C:\Qt\5.6\mingw49_32\bin>windeployqt.exe PATH_TO_MY_EXE_FOLDER --release -3dcore -quick -qml -3dquick -3dinput

然后我启动我的应用程序并看到module QtQuick/QtQuick.Scene3D is not installed。为了解决这个问题,我将整个 qml 文件夹从 C:\Qt\5.6\mingw49_32\qml 复制到我的应用所在的文件夹中。

我的屏幕上显示以下内容:

qrc:/main.qml:2:1: 无法为模块加载插件 “QtQuick.Scene3D”:无法加载库 C:\gui\qml\QtQuick\Scene3D\qtqui ckscene3dplugin.dll: ?? ?????? ?????? ?????????。”

我该怎么办?实际上,qtquickscene3dplugin.dll 在正确的文件夹中。

部署基于 Qt5.6 的应用程序的最佳/最简单方法是什么?

【问题讨论】:

【参考方案1】:

经过半天不间断的实验,这里有一个解决方案: 1. 将 all *.dll 从 C:\Qt\5.6\mingw49_32\bin 复制到您的 bin 文件夹 2. 将 qml 和插件文件夹从 C:\Qt\5.6\mingw49_32 复制到你的 bin 文件夹 3.在你的bin文件夹中创建qt.conf,内容如下:

[Paths]
Prefix=.
Plugins=plugins
Qml2Imports=qml

完成所有这些步骤后,您将能够从 Windows 资源管理器启动您的应用程序。不要问我复制所有的 DLL 会如何影响插件加载问题:)

【讨论】:

以上是关于使用 MinGW 和 Qt5.6 部署应用程序的主要内容,如果未能解决你的问题,请参考以下文章

qt5.6.3静态编译运用程序

Windows、Mingw Qt 应用程序无法在已部署的计算机上运行

Qt5.6 RHEL全屏应用程序窗口和子窗口

将 gtkmm2 应用程序部署到 Windows - 字体未从 mingw 终端呈现

Yocto/Qt5.6:无法构建示例 Qt 应用程序

如何在Windows XP上部署Qt 5.10 Quick 2应用程序?