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

问题描述

在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,不影响启动和运行的文件夹就可以放心得删掉了。

你可能感兴趣的:(Qt,Qml,部署,qml应用不能运行,qml应用运行失败)