QT使用enigmavb打包发布程序 出现Cannot load library QT5Core.dll 解决方案

QT使用enigmavb打包发布程序 出现Cannot load library QT5Core.dll 解决方案

我是QT的初学者,近期制作出小项目,按照网上高手们给出的方法,使用windeployqt与enigmavb打包制作程序,结果执行exe程序总是会出现“cannot load library QT5Core.dll”。
在这里插入图片描述
网上搜索各种解决办法,例如添加libgcc_s_dw2-1.dll libstdc+±6.dll libwinpthread-1等方法,问题始终无法解决。
不打包的exe程序可以正常运行,而打包后的exe程序却无法启动,肯定是缺少了dll文件。既然没有容易的办法可以查出真正缺少的dll文件,就先把所有dll文件都打包试验一次,结果确实就没有再出现“cannot load library QT5Core.dll”,程序可以正常运行了。
包含全部的dll,文件肯定会非常的大。 对比windeployqt产生的需要的dll文件,将可能不需要dll文件分组式的逐步试验取消掉。
把部分不需要的dll文件取消后, 我这项目打包生成的exe文件从119MB减少为32MB了。

大概的过程如下:
1.创建一个文件夹,例如\frun-1; 将qt工程release执行生成的***.exe,例如frun.exe, 拷贝过去;
2.在\frun-1下命令行执行windeployqt frun.exe, 所需的相关dll被自动拷贝到frun-1文件夹;
3.另外创建一个文件夹,例如\frun-2; 仍然把frun.exe拷贝过去;
4.将5.14.2\mingw73_64\bin 下的所有dll文件都拷贝到\frun-2;
5.对比frun-1和frun-2, 将frun-2比frun-1缺少的文件和文件夹,从frun-1拷贝到frun-2;
6.使用enigmavb对frun-2进行多次的打包试验;每次打包再多删除一些比frun-1多余的dll文件;如果仍然存在问题,则先取消其他组文件;直至文件大小基本足够小即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值