【问题标题】:Qt C++ Application deployment problems, used Visual Studio 2019 to create itQt C++应用部署问题,使用Visual Studio 2019创建
【发布时间】:2020-12-05 14:22:50
【问题描述】:

我只是构建我的项目,现在当我单击可执行文件 (.exe) 时,我给出了一些 .dll 文件丢失的错误,所以我参考了这个页面https://doc.qt.io/qt-5/windows-deployment.html,它说我可以使用 Windows 部署工具,这是在QTDIR/bin/windeployqt 文件夹目录中找到的,但是当我转到图像中的路径时 c\Qt\5.14.1

我看到我有所有这些文件夹,而且它们都有 bin 文件夹,所以为了解决这个问题,我进入了 Visual Studio,Extensions->QT VS Tools->Qt 选项,这个东西出现了,我在那里知道我正在使用的版本

所以,我打开命令提示符并执行此操作

之后,在我的应用程序 .exe 文件夹中,我看到添加了更多 .dll 文件,但仍然出现相同的错误 缺少 Qt5Widgets.dll、Qt5Core.dll、Qt5Gui.dll,我拥有所有这些但名称以 d 结尾,我应该尝试重命名它们吗?

【问题讨论】:

  • 1) set PATH=<qt-path> 完全替换了现有的 PATH,您可能希望将 set PATH=<qt-path>;%PATH% 添加到其中。 2)“VCINSTALLDIR is not set”表示没有设置VS环境,你需要在VS开发者提示符下运行。 3) "GafUI.exe 64 bit, debug" 表明 QT 错误地将您的 .exe 识别为调试版本,可能是因为 1) 和 2),这导致它复制调试 DLL (那些带有“d”后缀的)而不是 .exe 需要的发行版。
  • qt.conf 文件本身没有问题,但如果您将 QT 移动到不同的目录,您需要记住更新它,并告诉朋友(安装 QT 并)这样做如果他们想运行你的应用程序也是一样的。
  • @the_learnist 是的,您需要包含您的应用所依赖的 QT 运行时。对于现实生活中的示例,请查看 xnview mp 的 .zip 分发以了解他们是如何做到的(但 您的 DLL 列表不一定与他们的相同)。
  • @the_learnist vcruntime140d.dll 和其他 "d" 是 debug dll。它们不可再分发,无论如何,您不应该发送调试版本。至于为什么windeployqt 错误地将您的.exe 错误构建为调试版本,我不知道,但似乎您可以使用--release 命令行开关覆盖它,然后它应该复制正确的非调试dll 集.
  • @the_learnist 那将是我对链接页面的阅读,是的。

标签: c++ visual-studio qt


【解决方案1】:

我通过将qt.conf 文件放在我的应用程序的 .exe 文件夹中解决了这个问题

[Paths]
Prefix=C:\Qt\5.14.1\msvc2017_64

在您的qt.conf 文件中定义Prefix 允许它在您的应用启动时找到qwindows.dll 平台插件。

【讨论】:

    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    相关资源
    最近更新 更多