Windows下QtQML应用程序发布失败(无法打开&界面不显示)的终极解决方案

首先,下图为仅使用了QtQuick中Controls&Particle&GraphicalEffects&Multimedia等控件后发布得到的应用程序目录结构:
在这里插入图片描述
一般而言,使用qt官方介绍的途径(即在deployqt加上-qmldir及参数)目前仍有可能存在应用程序界面不显示或者双击完全无响应的现象,这是由于自带的dll配置程序不能完全拷贝程序需要的所有扩展文件到发布目录下。为此:

  1. 我们先将release编译得到的应用程序文件置于【Qt安装目录】\Qt5.12.4\5.12.4\mingw73_64(此处以发布使用mingW7.3_64位编译出的文件为例,实际根据自己所使用的编译器版本来进行调整)目录下的bin文件夹中,测试程序能否正常运行。如果能运行——>2 不能——>更换一下编译环境再在QtCreator中进行测试,如果可行则进入第二步,仍然失败的话考虑相对路径等文件引用问题。
  2. 将bin文件夹下的所有.dll文件(后缀有d的除外,如Qt5Sqld.dll,这些是debug使用的配置文件)拷贝到发布目录下,将qml文件夹下你使用的组件文件夹拷贝过去(根据是否import来判断),删除其中的debug dll文件。拷贝plugin下的文件夹(一般简单程序拷贝imageformates和platform即可,根据你是否使用了音频文件&sqlite支持等等,拷贝对应名称的文件夹)放置到发布目录,此时点击运行,如果已经正常,那么可以再精简掉xxxxd.dll文件和qml文件夹中未使用的(比如controls2的各种style组件)随后打包发布即可。
  3. 若不能运行,则拷贝完整的plugin&qml文件夹内容到发布目录,如果想要精简则进行逐个文件夹的删除测试,否则直接删除debug dll文件打包发布即可
  4. 如果是基于mingw的程序,可以先试试把windeployqt打包的Qt5Core.dll文件替换为MinGW的bin目录里的同名文件。
发布了24 篇原创文章 · 获赞 14 · 访问量 6151

猜你喜欢

转载自blog.csdn.net/qq_35587463/article/details/93890951