在不同的计算机上运行 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 应用程序的主要内容,如果未能解决你的问题,请参考以下文章