【发布时间】: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