QT6的可执行程序打包问题

#qt打包# #缺少dll# #无法正常运行# #MSVC2019依赖库#

       用QT6.6开发windows客户端软件(exe),发现可执行程序的打包是个容易出现问题的点,要么打包之后放到其它电脑上不可运行,要么执行的时候出现系统错误:应用程序无法正常启动(0xc000007b)。

        qt6的打包方法有所变化,主要是变成了windeployqt6,注意跟5以前的版本还是有区别的,多了一个6的标识,windeployqt命令也依然可以使用,但有时候会造成错误。

        首先,如果使用了MSVC2019的编译,那么就更容易出现打包不全的现象,执行windeployqt6命令的时候,看上去增加了一堆链接库,以为可以正常独立运行了,而且在开发的电脑上测试是ok的,但是一旦移植到别的电脑上就不行了。主要是MSVC的几个链接库,没能正常打包。

        如果使用了MSVC2019的链接库,最典型的就是WebEngine,因为mingw编译不支持这个组件,如果需要客户端和浏览器交互编程,就肯定使用webengine了,那就需要msvc2019的链接库。经过测试,正确的做法如下:

       1. 先确保注册了MSVC2019的环境变量,如此是为了保证在MSVC2019的命令行时能自动找到其库目录。

注册的环境变量就是MSVC2019的VC目录(安装目录下),变量名是VCINSTALLDIR。在path中将其置前。

      2. 在windows搜索中输入QT6,查找命令行工具(注意,此工具不同于cmd的通用命令行)

3. 点击命令行进入,切换到exe所在的目录,注意最好是release版本

4. 输入命令行 windeployqt6  XXX.exe --release

5. 注意观察 msvc的库是否已经包含,是否有错误。

正常的情况下,即可正常运行。当然如果出现了32位的库文件用在了64位的exe或者64位的库用在了32位的库,都会出现应用程序无法正常启动。

一定要注意检查qt的工程下,是32位还是64位,需要与命令行一致。

错了就重复多做几遍即可。

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾成刚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值