此应用程序无法启动,因为它无法找到或加载Qt平台插件“windows”错误消息

时间:2014-08-27 15:21:47

标签: c++ qt qt5 platform

我已在Qt v5.3.1上使用MinGW v4.8.2windows 7 32bit创建了一个应用程序 打开我的应用程序时出现以下错误:

我已使用windeployqt.exe工具包含所有重要文件来运行我的应用程序。

platforms文件夹还包含:

此外,我还包含所有重要文件,无需使用windeployqt.exe工具即可手动运行我的应用程序,问题仍然存在。

我不知道如何解决这个问题。


修改

使用Dependency Walker工具的结果。

我仍然不知道如何获取这些dll文件question mark

2 个答案:

答案 0 :(得分:2)

首先,感谢大家帮助理解问题以及如何解决问题。

现在,要解决这个问题,你必须准确地阅读这篇文章,以便先了解问题是什么,然后再解决它。 [Deploying a real Qt app – understanding more of Qt]

结论简而言之:
问题的原因是the path of the plugins that you used in your project 您在项目中使用的插件的默认路径是qt path folder,但是当您的计算机上没有安装qt开发环境时,您的应用程序将无法运行,因为默认path to plugins指向{{1}这就是问题所在 我们需要指向/更改应用程序文件夹的插件路径。

有多种方法可以指导/更改路径。我将提到我已经尝试并成功解决问题的方式

有一个名为addLibraryPath(const QString & path)的静态方法,此方法我们将使用它来指导/更改qt path folder

示例:

the plugins path

int main(int argc, char *argv[]) { QApplication::addLibraryPath("pluginsFolder"); QApplication a(argc, argv); Widget w; w.show(); return a.exec(); } 是包含您在项目中使用的所有插件的文件夹。

您也可以更改

pluginsFolder

QApplication::addLibraryPath("pluginsFolder");

这意味着主应用程序文件夹中的插件不在名为QApplication::addLibraryPath("."); 的子目录中 并且不要忘记使用plugins工具来部署您的项目。

最后,我希望这个简短的解释对我后面的人有用,他们将面临同样的问题。

答案 1 :(得分:1)

尝试使用QtApplication.exe将libEGL.dll,libGLESv2.dll和D3DCompiler_43.dll添加到目录级别。 qwindows.dll很可能将它们作为依赖项,因此您会收到静默故障。如果它们位于您的Qt-Dir / bin中,您可以判断是否需要它们。如果做不到这一点,在Dependency Walker中打开qwindows.dll可能会有助于显示缺少的依赖关系。