使用 windeployqt 在构建后事件中复制 Qt dll 不起作用
Posted
技术标签:
【中文标题】使用 windeployqt 在构建后事件中复制 Qt dll 不起作用【英文标题】:Copying Qt dlls in post build event using windeployqt is not working 【发布时间】:2020-09-29 10:01:06 【问题描述】:在我的系统上,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"
但是,我收到以下错误:
执行:警告:无法读取 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"
任何想法如何解决这个问题? 谢谢。
【问题讨论】:
【参考方案1】:文档是这样说的:windeployqt 需要在构建环境中运行才能正常运行。使用 Qt Installer 时,应使用脚本 QTDIR/bin/qtenv2.bat 进行设置。
所以在调用windeployqt之前尝试执行脚本QTDIR/bin/qtenv2.bat。
【讨论】:
以上是关于使用 windeployqt 在构建后事件中复制 Qt dll 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Qt 的 windeployqt 集成为 Visual Studio 构建工作流的一部分?