一、问题出现
在win7 x64系统下,使用Qt5.6.2 MinGW32开发的程序,在本机运行没问题,可是把.exe和用到的.dll打包发到别人电脑上却运行不了,报错如下:
二、原因分析
为什么会这样?这是因为程序运行需要Qt本身的一些dll动态库,把这些缺失的dll补上就可以了。需要注意的是:一般遇到这个报错,是缺少plugins文件夹下的platforms和imageformats两个文件夹内的dll动态库。
三、解决办法
因此,解决办法就是将Qt安装目录下对应的动态库dll文件拷贝到程序运行目录下。但是一定不要直接把这两个文件夹下的dll文件直接扔到.exe同级目录下,而是要把这两个文件夹直接扔到.exe同级目录下,如下所示:
再试试在其他电脑上运行.exe,是不是已经可以正常运行了,完结撒花。
四、附加说明
另外有人可能会有疑问:为什么在自己的电脑上并没有把platforms和imageformats这两个文件夹放到.exe同级目录下,直接运行.exe也没问题?
这是因为在创建项目时已经通过配置Qt Project Settings为项目指明了搜索路径,所以在本机运行时不需要把这些Qt本身自带的dll扔到和.exe同级目录下。
温馨提示:platforms和imageformats这两个文件夹一般在Qt的安装目录下直接搜索就可以找到,比如,我安装的是Qt5.6.2版本,安装在C盘,那么我电脑上的platforms和imageformats文件夹所在路径为:
C:\Qt\Qt5.6.2\5.6\mingw53_32\plugins\platforms
C:\Qt\Qt5.6.2\5.6\mingw53_32\plugins\imageformats