程序员人生 网站导航

问题解决:it could not find or load the Qt platform plugin "windows"

栏目:综合技术时间:2015-04-02 08:21:38

问题:在使用Qt5.3.2编写程序并release,文件夹中已添加了必要的dll,但在其他机子上运行程序失败,出现了下面的情况:

这里写图片描述

解决方法1:在C:QtQt5.3.25.3中进入mingw482_32文件夹,将pluginsplatforms全部目录复制exe履行文件所在的文件夹目录中,程序便可运行。

以下是网上几个其他方法的总结:

解决方法2:复制你exe需要的qt插件,首先要在源程序中的main函数中加上QApplication::addLibraryPath(“./plugins”);

把C:QtQt5.3.25.3mingw482_32plugins里的dll复制到exe履行文件目录就OK了。

比如程序在自己机子上运行正常,拷贝到其他电脑后1些图片没法显示可尝试这类方法。这时候可能的解决方案是,进入exe文件所在目录底下新建文件夹imageformats, 然后去QT的plugins下imageformats文件夹下拷贝相应的图片编码的dll和lib。例如在程序中用到的图片是jpg格式的,就复制qjpeg.dll 和qjpeg.lib过去。

解决方法3:使用Process Explorer查看程序所使用的dll

Process Explorer是1个很有用的工具。由Sysinternals开发的Windows系统和利用程序监视工具,目前已并入微软旗下。不但结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(dll和内核模式驱动程序)加载、系统引导时记录所有操作等。(来自百度百科的解释)

既然可以监视dll,那末在发布程序前,可以用Qt Creator运即将要发布的程序,在Process Explorer中查看exe使用的dll,1般来讲,程序运行失败极可能就是少了对应的dll文件。

这是我用qt发布1个简单程序所需要的dll列表:

这里写图片描述

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐