如何解决Windows平台错误

时间:2016-05-25 14:42:43

标签: c++ windows qt

我制作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参数
  7. 运行myapp
  8. 使用带有QT_QPA_PLATFORM_PLUGIN_PATH参数的qt.conf文件
  9. 有趣的是,当我重命名" MYPATH \ Qt \ 5.6 \ msvc2015_64 \ plugins \ platforms "目录来自" 平台"到" platformsX ",我本地计算机上的应用程序也开始崩溃。

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

    此标记被标记为重复,其中" Qt5静态构建产量无法加载平台插件" windows""。 但是这里缺少windeployqt.exe myapp.exe --dir myapp_deps 我写了那个帖子并应用了所有的建议,但仍然遇到了同样的问题。

1 个答案:

答案 0 :(得分:3)

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

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

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

例如,我将以下内容用作部署脚本的一部分:

windeployqt.exe myapp.exe --dir myapp_deps

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

在此之后,如果你将myapp.exe放入myapp_deps并将文件夹重新定位到没有安装Qt的另一台PC,那么myapp.exe将会运行。