为了测试QML部署,我创建了一个非常简单的QML应用程序。这是代码:
main.cpp
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QFile>
int main(int argc, char **argv) {
QApplication app(argc, argv);
QQmlApplicationEngine engine;
QString path = app.applicationDirPath() + "/qml/main.qml";
if(QFile::exists(path))
engine.load(path);
else {
return 1;
}
return app.exec();
}
main.qml
import QtQuick 2.2
import QtQuick.Controls 1.2
ApplicationWindow {
id: mainWindow
title: "Test window"
width: 800
height: 600
visible: true
}
为了确保系统中未安装任何开发库,我已经设置了带有纯Windows XP安装的虚拟机。然后,我按照此处所述的说明进行操作,并将所有Qt5 * .dll以及platform / qwindows.dll和icu * 52.dll复制到了程序目录中。依赖项Walker确认没有遗留任何中断的依赖项,即应正确设置所有内容。
但是,由于某些原因,当我运行我的应用程序时,我什么也看不到。既没有窗口,也没有错误消息。从控制台运行也没有错误。尽管如此,我仍可以看到我的应用程序在任务管理器中运行,就像它在后台运行一样。在开发机器上运行该应用程序毫无问题:该应用程序正确启动,我可以看到其窗口。
我究竟做错了什么?我如何部署QML应用程序以确保它可以在任何其他非开发计算机上运行?
如果使用MinGW,请尝试将所有文件夹从qml文件夹和插件复制到程序的目录中。同时复制库:icudt52.dll
,icuin52.dll
,icuuc52.dll
,libgcc_s_dw2-1.dll
,libstdc++-6.dll
,libwinpthread-1.dll
,Qt5Core.dll
,Qt5Gui.dll
,Qt5Network.dll
,Qt5Qml.dll
,Qt5Quick.dll
,Qt5Svg.dll
,Qt5Widgets.dll
从斌
最终,目录将如下所示:
这种方法适用于未安装Qt的WindowsXP / Win7。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句