【无标题】
Windeployqt 打包,缺少DLL 的原因分析,解决方法
很多同学使用工具windeployqt进行打包发布后,运行exe文件时,还是会出现下图所示的系统错误提示,这种情况就表示相关的DLL 库文件没有被正确打包。可是windeployqt明确显示运行正常啊,难道是QT自家的windeployqt这个工具有bug?显然不可能。下面就来分析一下问题的原因,并给出解决问题的详细步骤,相信大家看完后就会豁然开朗。
其实产生这个问题的原因很简单,就是很多同学在打包时,都是直接在windows 环境下打开cmd 命令行,然后执行指令windeployqt,运行时就会出现上图的错误。正确的做法应该是在QT提供的命令行环境下执行windeployqt,这两者有什么区别呢?
如下图步骤,在windows桌面搜索栏输入qt,按上下键选择相应的版本,此处选择Qt 6.4.1 for Desktop (MinGW 11.2.0 64-bit),然后选择【打开文件位置】
在打开的目录下面有一个相应的快捷方式图标:Qt 6.4.1 for Desktop (MinGW 11.2.0 64-bit)
右键点击此快捷文件,选择【属性】:
查看目标栏内容,此处内容为:
C:\Windows\System32\cmd.exe /A /Q /K E:\Qt\Qt6.4\6.4.1\mingw_64\bin\qtenv2.bat
看到这里就知道了,原来从QT环境打开命令行时,执行了一个批处理文件 qtenv2.bat,那这个文件里面干了什么呢?
在E:\Qt\Qt6.4\6.4.1\mingw_64\bin\ 目录ÿ