为了测试部署过程,我正在尝试部署包含的演示应用程序Minehunt。我能够让它运行,没有崩溃或错误,但屏幕全是白色。
我认为这通常意味着我缺少插件。 Dependency walker报告没有问题,我甚至尝试包括Qt MingW插件目录中的所有插件,但没有这样的运气。
这是我到目前为止所包含的内容;任何人都可以建议我还需要添加什么才能让它运行?
答案 0 :(得分:1)
你的dlls看起来一点也不差。我想也是,这是你的插件。即使他们在那里,也很有可能你的程序找不到它们。在默认情况下,Qt有点挑剔。您可以尝试qt.conf
。这是您必须在可执行文件所在的文件夹中创建的小文本文件。它包含Qt插件的路径。
例如,在我的一个项目中,我有以下文件夹布局:
Appfolder plugin qt plugins imageformats sqldrivers myapp.exe qt.conf ...many dlls...
然后我将一个qt.conf文件添加到Appfolder,其中包含以下内容:
[Paths] Plugins = plugins/qt/plugins
我的程序是Qt 4,但我不认为插件部署的这个方面在Qt5中发生了变化。
我所有的qt dll都在qt中。我添加了以下路径:SET PATH=.\plugins;.\plugins\qt;%PATH%
。在我试过的任何Windows上都像魅力一样。
编辑: 然后我创建了一个.bat文件,它执行:
SET PATH=.\plugins;.\plugins\qt;%PATH% cd Appfolder start myapp
这是一个丑陋的快速修复,我没有时间用更好的东西替换它。
答案 1 :(得分:1)
如果应用程序运行并显示空白屏幕,则通常表示两件事:
在你的main.cpp中检查你将给出的qml文件的路径,并查看该文件夹是否存在于与你的可执行文件相对应的相同位置。
此外,不是通过双击运行可执行文件,而是通过命令行运行它。如果根据指定的路径无法找到某些图像/文件/其他依赖项等,它可能会打印一些消息。
编辑1:
在.pro文件中添加此标志:
CONFIG += console
运行应用程序后,它将在控制台中提供确切的调试消息。