Qt 部署的可执行文件打开空白应用程序

Posted

技术标签:

【中文标题】Qt 部署的可执行文件打开空白应用程序【英文标题】:Qt deployed executable opening blank application 【发布时间】:2017-08-13 16:11:51 【问题描述】:

我在 Windows 上使用 C++ 和 QML 在 Qt creator 中创建了一个项目。我需要将我的项目部署为共享库,所以我使用的是 windeployqt 工具。以下是遵循的步骤:

    在没有选择影子构建选项的情况下以发布模式构建项目。 仅复制单独文件夹中的可执行文件,路径:D:\Deploy 在命令提示符下导航到 D:\Deploy 并使用以下命令: D:\Deploy>windeployqt --qmldir 'path to project qml files' --release app.exe 此工具添加所有依赖文件和所需的 dll,如屏幕截图所示。

执行上述命令后部署文件夹:

    当我双击 D:\Deploy 文件夹中的 app.exe 时,它​​只打开一个空白窗口。

请提出过程中的问题。该应用在 Qt creator 的发布配置中运行良好。

【问题讨论】:

尝试从cmd运行,也许我会给你一些信息。 我试过了。命令提示符上没有消息。它以空白屏幕启动应用程序。是否可能与不正确的图形渲染设置有关? 当我从 D:\Deploy 复制 app.exe 文件并将其粘贴到 C:\Qt\5.7\mingw53_32\bin 并执行时,应用程序启动得非常好。 那你需要复制一些dll 尝试使用:dependency walker dependencywalker.com 【参考方案1】:

项目路径中缺少 2 个文件:D:\Deploy\QtQuick\Controls 1.qml目录 2.qtquickcontrolsplugin.dll

手动添加这些,现在可执行文件可以正常工作。谢谢你的建议。 您能否建议即使在使用 windeployqt 工具后这些文件仍然丢失的原因?因为找出丢失的文件需要花费大量的精力和时间。

【讨论】:

以上是关于Qt 部署的可执行文件打开空白应用程序的主要内容,如果未能解决你的问题,请参考以下文章

QT如何修改编译后产生的可执行文件的路径》

Windows上发布Qt的可执行程序

如何使 setWindowIcon 在独立的可执行文件(Qt5.14 + VS2019)中正常工作?

在 Ubuntu 上运行 Qt 创建的可执行文件时出错

打包程序1

Qt 错误: 无法运行 release 下的可执行文件