【问题标题】:Deploying QT application部署 QT 应用程序
【发布时间】:2013-01-29 07:32:53
【问题描述】:

我尝试使用 VC++(调试模式)在 Windows 上部署我的 QT 应用程序构建。我在未安装 QT 的 PC 上运行该应用程序。我还提供了一些它需要的 .dll 库。这是文件夹布局:

  1. D3DCompiler_43.dll
  2. icudt49.dll
  3. icuin49.dll
  4. icuuc49.dll
  5. libEGLd.dll
  6. libGLESv2d.dll
  7. MyApp.exe
  8. MyApp.ini
  9. Qt5Cored.dll
  10. Qt5Guid.dll
  11. Qt5Widgetsd.dll
  12. 插件
  13. 插件\平台\
  14. plugins\platform\qminimal.dll
  15. plugins\platform\qminimald.dll
  16. 插件\平台\qwindows.dll
  17. plugins\platform\qwindowsd.dll

当我运行应用程序时,我收到一条错误消息:“无法加载平台插件'windows'。可用平台是:” 我认为它找不到加载平台,尽管我在插件文件夹下提供了平台。我还将平台路径添加到系统路径,但它也没有解决。有什么建议吗?

【问题讨论】:

  • 虽然所有答案都已经给出,但我想发表评论。我看到您列表中的所有 Qt-lib 末尾都有 d,这意味着它们是它们的 debug 版本。要减小文件大小,您可能需要部署应用程序的 release 版本,在这种情况下,您需要随其分发 release 版本的 Qt 库(不带 d) .
  • 我也有类似的问题。部署 Qt4 非常简单,只需要 QtGui 和 QtCore。现在我们需要十几个 DLL :( ,即使提供了 DLL,它通常也不起作用。

标签: qt


【解决方案1】:

plugins 目录是unnecessary

试试这个结构:

  • ...
  • Qt5Widgetsd.dll
  • 平台\
  • 平台\qminimal.dll
  • 平台\qminimald.dll
  • 平台\qwindows.dll
  • 平台\qwindowsd.dll

【讨论】:

    【解决方案2】:

    有一个help page 详细说明了如何为 Windows 部署 Qt5 应用程序。

    那里最有用的信息:有一个 Windows 部署工具 (windeployqt) 可以自动为您找到所有需要的 dll!

    【讨论】:

      【解决方案3】:

      您可以在程序的开头main() 加载您的插件,如下所示:

      QCoreApplication app(argv, args);    
      QString sDir = QCoreApplication::applicationDirPath();
      app.addLibraryPath(sDir+"/plugins/platform");
      

      【讨论】:

      • 我认为这对插件 dll 很有用。但是核心 .dll 呢?如果核心 .dll 在 .exe 之外,则它可以工作,但如果它在另一个文件夹中则不起作用.. 我也尝试将文件夹添加到路径,但它不起作用..
      • 通常用于插件。如果没有 core dlls 与您的 exe 在同一目录中,您的应用程序甚至无法启动。基本上,您不能将核心 dll 从 exe 目录移动到其他目录。
      【解决方案4】:

      在调试中运行 Qt 时,输出窗口会告诉您它加载的所有 DLL,然后您需要将其包含在您的分发 exe 文件夹中。

      【讨论】:

        猜你喜欢
        • 2011-09-07
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-03
        • 2014-04-06
        相关资源
        最近更新 更多