Qt打包后exe无法正常运行解决方案

Qt常用打包软件windeplotqt(只适用windows下)

windeplotqt软件是Qt自带的自动打包软件,能根据exe依赖库,补充缺少的动态库,详细用法这里就不介绍,但是这打包软件真的不好用,经常打包的依赖库都是缺失的,经常需要VS dumpbin软件对响应的库进行依赖查询。

遇到问题

我们经常会遇到windeplotqt打包软件,在打包过程中丢失依赖库,虽然可使用VS中dumpbin /dependents指令查询对应dll/exe依赖的库是否缺失,可以依照反馈依赖的dll,进行补充,虽然小心翼翼加载所需要的dll,但是exe还是会出现无法正常打开情况。(以下是exe遇到情况)

  1. 运气好会弹窗提示,显而易见必须依赖的dll
    在这里插入图片描述

  2. 运气差的会提示,不直接明确错误点在哪里
    . 在这里插入图片描述
    这种提示平台插件错误
    在这里插入图片描述
    3.最坏的情况是点击了没反应,任何提示都没的那种。(反正一定有什么东西缺失了,但是我不知道)
    只见窗口一闪而过,留下一脸懵逼的我
    第三种情况是最尴尬的,用dumpbin软件观察依赖库,有些dll又互相依赖,不可能能一个个去查看依赖情况,总会遗漏点库,那怎么办,有办法知道加载啥dll,或者能够有张表格对比丢失dll是哪些呢

解决方案

如果你能在QtCreator开发工具下正常跑,只是打包出来的软件异常了,那恭喜你,有机会解决这个麻烦
1.QtCreator下点击调试模式
在这里插入图片描述x
底部调试状态下点击view按键
在这里插入图片描述
在view弹出菜单窗口中勾选Debugger log(调试日志)
在这里插入图片描述
顶部会出现依次加载dll
在这里插入图片描述
在这里插入图片描述

根据你打包好的文件夹下,对应查找(Ctrl+F过滤关键字)加载过Qt库,以及你本地目录下依赖库(windows自带dll一般不需要依赖),路径可以依照(DebugLog窗口显示)加载dll路径,把所需dll直接复制过来。

总结

使用QtCreator开发工具,里面能够获得依次加载过的dll,相对于无头苍蝇去加载乱七八糟的dll,能够更好整理依赖库的管理,可以把没加载过dll删除,减小包的大小。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值