在另一台电脑上运行 qt qml 应用程序

Posted

技术标签:

【中文标题】在另一台电脑上运行 qt qml 应用程序【英文标题】:Run qt qml app on another pc 【发布时间】:2017-01-23 09:03:51 【问题描述】:

我在 Qt 5.7.1 中使用 Qml Quick 2.6 编写了一些应用程序。 它不能在没有安装 Qt 的另一台电脑上运行。 在日志中我看到这个错误: “[警告] QQmlComponent:组件未准备好”。 在 Windows 的任务管理器中,我看到应用程序正在运行,但没有应用程序窗口。 我放入资源文件中的所有 qml 文件。

new QQmlComponent(&(this->engine),
                                  QUrl(QStringLiteral("qrc:/qml/design/qml/main.qml")));

具有应用外观的目录:

当我在另一台 PC 上启动应用程序时,没有任何关于依赖某些 dll 的错误消息。请帮忙...

【问题讨论】:

不需要部署整个qml目录吗? 我需要运行应用程序,我存储在资源文件中的所有 qml 文件。但是当我在另一台电脑上运行应用程序时,应用程序似乎无法归档 qml 文件。当我在我的 pc 应用程序的 workink 上运行时。我不知道怎么了... 我说的是Qt的qml目录。您似乎只是从中复制了QtQuick.2... 使用windeployqt 和qml 标志,很像this。您需要确保部署工具为您识别所需的快速 dll/qml 文件并导入它们。 【参考方案1】:

将正确(且最少)的 DLL 二进制文件集复制到目标机器并不是最简单的事情。但是有它的标准文档和一个名为 windeployqt 的帮助工具,您应该查看。

http://doc.qt.io/qt-5/windows-deployment.html

【讨论】:

我也一样...window od 应用程序不显示,在任务管理器中我可以看到该过程。 部署工具也不适合我。这就是为什么我对分发给其他人的应用程序使用静态链接的原因,它只是省去了很多麻烦。 @ddriver 较新版本似乎工作正常,当然你也可以在 Windows 上像 this 一样使用它们。 2 我用过 Mac 和 Win,没有特别的问题。但是,是的,静态链接肯定是最简单(也是最小)的解决方案。 我刚刚安装了5.8,所以我会试一试。 @ddriver 如果你用mingw编译你需要手动复制libgcc、pthread和stdc。不知道为什么他们没有被复制。自一年以来(实际上在 Mac 上为 2 年),它一直对我有用。

以上是关于在另一台电脑上运行 qt qml 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在另一台安装了 qt 的计算机(linux)上运行 qt 程序?

使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins

在另一台电脑上运行exe文件

使用 Qt 的程序在另一台计算机上执行时崩溃

Qt 中未显示 JPEG 图像

如何在另一台Mac上运行Swift Terminal应用程序