使用 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 部署应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Windows、Mingw Qt 应用程序无法在已部署的计算机上运行