2

为了测试部署过程,我正在尝试部署包含的演示应用程序 Minehunt。我能够让它运行,没有崩溃或错误,但屏幕全是白色的。

我相信这通常意味着我缺少插件。Dependency walker 报告没有问题,我什至尝试包含 Qt MingW 插件目录中的所有插件,但没有这样的运气。

这是我到目前为止所包含的内容;谁能建议我还需要添加什么才能使其运行?

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

1

您的 dll 看起来一点也不差。我也认为这是您的插件。即使它们在那里,你的程序也很有可能找不到它们。Qt 在默认情况下看起来有点挑剔。你可以试试qt.conf。这是您必须在可执行文件所在的文件夹中创建的小文本文件。它包含 Qt 插件的路径。

例如,在我的一个项目中,我有以下文件夹布局:

应用文件夹
  插入
    qt
      插件
        图像格式
        sqldrivers
   我的应用程序
   qt.conf
   ...许多dll ...

然后我在Appfolder中添加了一个qt.conf文件,内容如下:

[路径]
插件 = 插件/qt/插件

我的程序是 Qt 4,但我认为插件部署的这一方面在 Qt5 中没有改变。我所有的 qt dll 都在 qt 中。我添加了以下 PATH: SET PATH=.\plugins;.\plugins\qt;%PATH%。在我尝试过的任何 Windows 上都像魅力一样工作。

编辑:然后我创建了一个 .bat 文件,它执行以下操作:

设置路径=.\plugins;.\plugins\qt;%PATH%
cd 应用程序文件夹
启动我的应用程序

这是一个丑陋的快速修复,我还没有时间用更好的东西代替它。

于 2013-08-29T08:25:45.793 回答
1

如果应用程序运行并显示空白屏幕,则通常表明两件事:

  1. 所有依赖项(dll)都可能存在并正确检测到。
  2. 最有可能缺少的是在正确位置存在 qml 文件。

在您的 main.cpp 中检查您将给出的 qml 文件的路径,并查看该文件夹是否存在于与您的可执行文件对应的相同位置。

此外,不要通过双击运行可执行文件,而是通过命令行运行它。如果无法根据指定的路径找到某些图像/文件/其他依赖项等,它可能会打印一些消息。


编辑 1:

在 .pro 文件中添加此标志:

 CONFIG += console

运行应用程序后,它将在控制台中给出准确的调试消息。

于 2013-08-29T13:59:38.977 回答