一、问题出现

       在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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐