解决Qt Qml应用使用windeployqt部署后仍不能运行的问题

本文介绍了在Windows系统中,针对使用Qml开发的应用程序无法通过windeployqt部署并运行的问题,提供了一种先加后减的解决方法。首先,将应用程序与所有必要的Qt库和插件复制到同一目录,确保程序能够正常启动。接着,逐步删除冗余的动态链接库和插件文件,通过试错找到最小依赖集,使应用仍能运行。该方法有助于精简部署包,确保Qml应用在Windows环境下顺利运行。
摘要由CSDN通过智能技术生成

问题描述

在Windows系统中官方推荐使用windeployqt,使用C++开发的应用程序使用windeployqt很好用,但是使用Qml开发的应用却不能运行,双击之后一点反应也没有。

解决方法

先加后减

做加法

比如我的应用程序为app.exe,先做加法,把运行app.exe可能缺的东西全都加上来。

  1. 关闭Qt Creaator
  2. app.exe放到C:\Qt\5.15.2\msvc2019_64\bin中运行,如果正常启动则继续。
  3. app.exe放到一个空文件夹中(比如文件夹名为:folder)。
  4. 把所有的动态链接库.dll文件都复制一份到folder中,动态链接库在我的系统中路径为C:\Qt\5.15.2\msvc2019_64\bin
  5. 将所有的插件文件夹都复制一份到folder中,插件文件夹在我的系统中路径为C:\Qt\5.15.2\msvc2019_64\plugins
  6. 把所有的Qml相关的文件和文件夹复制一份到folder中,Qml相关的文件在我的系统中路径为C:\Qt\5.15.2\msvc2019_64\qml
  7. 运行app.exe

此时app.exe应该是可以正常运行,接下来做减法,把运行app.exe不需要的东西全都删掉。

做减法

  1. 运行app.exe
  2. 选中所有的动态链接库,可以借助搜索来过滤后缀为.dll的文件,然后删除,用到的动态链接库会提示被占用,跳过就好。
  3. 删除所有的.pdb文件,同样可以借助搜索来过滤。
  4. [可选]清空回收站,万一删多了,方便找回来。
  5. 把从C:\Qt\5.15.2\msvc2019_64\qmlC:\Qt\5.15.2\msvc2019_64\plugins里面复制过来的文件夹一个一个地删除,每删一个都要重启下app.exe,不影响启动和运行的文件夹就可以放心得删掉了。
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值