首页 > 解决方案 > 使用 windeployqt 在构建后事件中复制 Qt dll 不起作用

问题描述

在我的系统上 Qt 位于C:\Libraries\Qt\5.12.6\VS2015\shared\x64(从源代码编译)。我在 Visual Studio 中使用这个 Qt 版本和 Qt 插件没有任何问题。

现在我想用“windeployqt”为我的应用程序自动复制所需的 Qt dll。

我添加了以下构建后事件:

cd "$(QTDIR)\bin\" 
windeployqt "$(OutDir)$(TargetName)$(TargetExt)"

结果是:

cd "C:\Libraries\Qt\5.12.6\VS2015\shared\x64\bin\" 
windeployqt "C:\PathToSoftware\TestSoftware.exe"

不过,我收到以下错误:

EXEC : 警告 : Unable to read C:\Qt\5.12.6\install\win32-msvc2015\x64\mkspecs\qconfig.pri: 系统找不到指定的路径。找不到C:\Qt\5.12.6\install\win32-msvc2015\x64\bin\Qt5Core.dll的依赖库:无法打开'C:/Qt/5.12.6/install/win32-msvc2015/x64/bin /Qt5Core.dll':系统找不到指定的路径。

如果我在命令提示符下运行“windeployqt”,也会出现同样的问题:

C:\Libraries\Qt\5.12.6\VS2015\shared\x64\bin\windeployqt "C:\PathToSoftware\TestSoftware.exe"

任何想法如何解决这个问题?谢谢你。

标签: c++qt

解决方案


这是文档所说的:windeployqt 需要在构建环境中运行才能正常运行。使用 Qt Installer 时,应使用脚本 QTDIR/bin/qtenv2.bat 进行设置。

所以在调用windeployqt之前尝试执行脚本QTDIR/bin/ qtenv2.bat。


推荐阅读