【问题标题】:How to solve windows platform error如何解决windows平台错误
【发布时间】:2016-09-23 06:09:23
【问题描述】:

我制作 Windows 应用程序。当我在安装了 QT 的本地计算机上运行它时 - 一切正常。

但是当我在另一台 W10 PC 或 W28R2 服务器上运行它时,我得到了已知错误。

此应用程序无法启动,因为它无法找到或加载 Qt平台插件“Windows”可用的平台插件有:“windows”

我阅读了所有关于此的主题,但没有找到解决方案。

我失败的步骤

  1. 将 libEGL.dll 复制到 myapp 目录中
  2. 将 libEGLSv2.dll 复制到 myapp 目录中
  3. 将 qwindows.dll 插入 myapp 目录
  4. 将所有 dll :-) 插入 myapp 目录
  5. 在项目设置中创建 QT_QPA_PLATFORM_PLUGIN_PATH 变量
  6. 使用 -platform 和 -platformpluginpath 参数运行 myapp
  7. 使用带有 QT_QPA_PLATFORM_PLUGIN_PATH 参数的 qt.conf 文件

有趣的是,当我将“MYPATH\Qt\5.6\msvc2015_64\plugins\platforms”目录从“platforms”重命名为“platformsX”时strong>",我本地计算机上的应用程序也开始崩溃。

它看起来像一个填充不良的全局变量,但对我没有任何作用。

这个 sloution 被标记为“Qt5 Static Build yield Failed to load platform plugin "windows"”。 但是这里缺少 windeployqt.exe myapp.exe --dir myapp_deps 我写了那个线程并应用了所有建议,但仍然遇到同样的问题。

【问题讨论】:

标签: c++ windows qt


【解决方案1】:

默认情况下,Qt 在应用程序目录中查找其插件,但您也必须保留插件子目录。

在您的情况下,只需将 qwindows.dll 复制到 myapp\platforms 目录中,以便您的应用可以找到插件。

更好的是,使用与您的 Qt 安装捆绑在一起的 windeployqt.exe 应用程序,它将复制所有必需的 Qt 库和插件。

例如,我在部署脚本中使用以下内容:

windeployqt.exe myapp.exe --dir myapp_deps

这会将所有必需的 Qt 库、插件和 VC++ 可再发行组件(如果您正确配置了 VCINSTALLDIR/VSINSTALLDIR 环境)复制到 myapp_deps 目录。 (注意:如果省略--dir 参数,则该命令会将所有依赖项复制到 myapp.exe 所在的当前目录。

之后,如果您将 myapp.exe 放入 myapp_deps 并将文件夹重新定位到另一台未安装 Qt 的 PC,则 myapp.exe 将运行。

【讨论】:

  • 超级!感谢您的解决方案。我过去测试过它,但没有成功。现在我注意到,有不止一个 windeployqt.exe 实用程序。每个平台一个实用程序。我过去可能触发了错误版本的实用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2015-01-10
  • 2016-01-03
  • 1970-01-01
  • 2016-10-15
  • 2014-07-31
相关资源
最近更新 更多