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

标签 c++ qt dll

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

在配置文件/调试/发布之后,我可以在我的计算机上成功运行该应用程序。

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

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

最佳答案

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

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

  1. 在 Release模式下编译您的应用。
  2. 创建一个新文件夹并将生成的 exe 文件复制到该文件夹​​。
  3. 访问 Qt Mingw32(或 MSVC)命令提示符并转到文件夹并运行:

    cd C:/myFolder windeployqt.

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

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

关于c++ - 在不同的计算机上运行 Qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39309335/

相关文章:

c++ - AVL树:词典的实际使用

c++ - 在 Slackware 14.2 64 位上使用 ACE lib 编译错误

xcode - 从命令行构建 Qt Xcode 项目

c++ - 在应用程序崩溃期间获取堆栈跟踪 - C/C++

python - 在面向对象的 Python 中使用 ctypes 从 DLL 文件运行函数时出现问题

c++ - 是否可以在 C++ 中创建一个隐藏的 txt 文件?

c++ - int 到 unsigned int 的转换

qt - 我可以使用opengl在窗口上画一些不属于我的东西吗?

qt - QML 图像 : SSL handshake failed

c++ - 即使引用计数不为零,动态加载的 DLL 也可以被 Windows 卸载,如何处理?