Qt5.8.0运行显示This application failed to start because it could not find or load the Qt platform plugin

1、遇到的问题

由于工作需要,在VS2013上编写了一个Qt程序,之前Debug调试都是没有问题的,后来准备说发布Release版本,结果就报出如下错误:
Qt5.8.0运行显示This application failed to start because it could not find or load the Qt platform plugin
即提示无法启动该应用程序,因为缺少支持Qt平台加载的插件!!

2、解决方案

解决方案(1)

  1. 出现问题后,我查找了很多解决方案,貌似最常见且有效的是,找到对应的/platforms/文件夹,然后将其放置在 .exe同个目录下;其中这个/platforms/文件夹位于你的Qt安装目录下,我的则是:
    "D:\Qt\Qt5.8.0\5.8\msvc2013_64\plugins\platforms"
    这里需要注意的是,我发现还有一个这样的文件夹:
    "D:\Qt\Qt5.8.0\Tools\QtCreator\bin\plugins\platforms"
    (虽然我最后用这种方式也没有成功,但是应该是使用第一个文件夹!)

2.我找到我的/platforms/文件夹后,将它添加进了.exe的同级目录中,错误变成:
Qt5.8.0运行显示This application failed to start because it could not find or load the Qt platform plugin
我不是很明白为什么它这里说这些是可用的,但是我添加进去又报错。后来我也尝试了复制另一个/platforms/文件夹以及将全部的.dll文件直接放在.exe同等目录下但都没有用!!

解决方案(2)

尝试了第一种方法失败后,我发现还有的博主说,可能是缺少***libEGL.dll***这个库导致的,需要将这个库直接添加至.exe同等目录下。这个库所在文件位置在Qt安装目录下的bin文件夹中:
"D:\Qt\Qt5.8.0\5.8\msvc2013_64\bin\libEGL.dll"
但是我添加进去后,报错仍然同上!!
Qt5.8.0运行显示This application failed to start because it could not find or load the Qt platform plugin

解决方案(3)

以上两种常见方法都无法解决我的问题,但是我判断本次情况的出现应该还是在于库的不完整导致的。我看也有的人借助了一些生成助手之类的东西,在编译之后可以自动生成该应用程序所需要的全部.dll文件,不过我没有尝试这种做法。主要还是解决方法(2)启发了我。
方法(2)中有提到可能是缺少***libEGL.dll***这个库导致的,所以我就将bin文件夹中所包含的所有.dll文件都添加进了.exe同等目录下。
终于!!!我的release版本可以直接打开了!!!
但是添加的.dll文件过多,我觉得肯定有一些没有必要,于是逐渐排除,最后剩下了这3个是我必须的,缺一不可:
Qt5.8.0运行显示This application failed to start because it could not find or load the Qt platform plugin
不过每个人的情况可能不一样,这三个不一定是你缺少的,但是在bin里面找一找总归是没错的。我也试过直接将bin文件夹放到.exe目录下,不过很遗憾不行,所以缺少的东西还是需要自己手动补齐!