在不同的计算机上运行 Qt 应用程序

Posted

技术标签:

【中文标题】在不同的计算机上运行 Qt 应用程序【英文标题】:Running Qt app on different computers 【发布时间】:2016-09-03 17:02:20 【问题描述】:

我刚刚完成了我的第一个 Qt 程序。我用 MinGW 32 位编译器编译它。 在我的计算机上,我在安装 Qt 时已经安装了所有必需的 dll 文件。

在 Profile/Debug/Release 之后,我可以在我的计算机上成功运行该应用程序。

但是.. 在第二台计算机(也是 Windows 10)上,我收到有关丢失 dll 文件的错误。 Qtguid.dll、qtwidgets 等等。我试图将一些丢失的 dll 文件放到程序目录中。出现新错误,例如 0xc00007b。

我可以做些什么来解决这些 dll 文件的问题?我该怎么做才能让这个应用程序能够在不同的 PC 上运行?

【问题讨论】:

“在第二台电脑(也是 Windows 10)上”那台电脑也是 32 位的吗?确保您没有将 32 位程序与 64 位操作系统混合使用,反之亦然。 首先,您需要了解更多关于原生应用部署的知识。当您看到有关QtGuid.dll 的消息时,您尝试部署一个调试程序。其次,详细了解Qt applications deployment。 【参考方案1】:

如果您在 Windows 下编译应用,32 位版本完全兼容 x64 位版本。如果您仅使用 Qt dll,则在 Windows 7 或 10 中运行该应用程序没有问题。

我建议您检查Qt Deployment Documentation 并使用windeployqt 获取所有必需的dll 文件。基本上:

    在发布模式下编译您的应用。 新建一个文件夹,将生成的exe文件复制到这个文件夹中。

    访问 Qt Mingw32(或 MSVC)命令提示符并转到文件夹并运行:

    cd C:/myFolder windeployqt .

Windeployqt 将复制此文件夹中的所有必需文件。该过程完成后,只需运行该应用程序。将文件夹压缩成rar或zip,在其他电脑上测试。

如果问题仍然存在,请使用DependencyWalker 检查所需的 dll。复制文件夹中所需的文件。 一切正常后,您可以使用InnoSetup 创建安装程序。

【讨论】:

以上是关于在不同的计算机上运行 Qt 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Windows、Mingw Qt 应用程序无法在已部署的计算机上运行

客户端计算机上必须安装啥才能运行 QT 快速应用程序?

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

完成构建 Qt 项目

已发布的 qt .exe 不会在另一台计算机上打开

PySide2和pyinstaller gui应用程序将无法在某些Windows计算机上运行