QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理

一、右击左下角电脑标识,选择release,在工程同目录下找到对应新生成的Release文件夹,把里面的exe文件拷贝出来,然后放进一个新建的文件夹下(文件名非中文最好),我的release不能生成,所以自己新建了Release2

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
选择release模式

二、Win键+R 启动运行框,输入cmd,在界面中输入cd /d +新建的文件夹路径(上面存放拷贝后放置exe的文件夹)+回车键

输入windeployqt [空格] demo.exe(刚放置的exe文件全名)+回车键显示如下图:

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
运行后显示

 

三、利用Enigma Virtual Box打包exe

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
打包软件操作步骤

 

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
打包完成显示
QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
对应路径下生成的exe文件

四、打包完成时,点击运行exe,运行该软件可能会报如下错误,把Qt安装目录下对应工程选择的编译版本的bin目录下的DLL文件替换一下该打包目录下的DLL文件,再试一下运行效果,我的有时会成功,有时会失败,经过多次尝试,打包时不能包含pugins文件夹,打包完成后再把QT安装目录下对应版本目录下的plugins文件夹复制过来,启动打包后exe可以成功。

五、分析原因:打包时platforms路径层级的问题,因为若我打包时直接把plugins文件打包进去,运行也会失败,提示no Qt platforms,所以只能打包成exe+plugin(内含platforms)的形式了,最终的只含exe文件就能运行的情形偶尔可以实现。

 

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
报错1
QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
报错2

 

QT5打包成exe文件方法及This application failed to start because no Qt platform plugin could be initialized处理
最后报错图