【问题标题】:Qt and Qt application prerequisitesQt 和 Qt 应用程序先决条件
【发布时间】:2011-12-05 21:10:52
【问题描述】:

我是 Qt 新手,我在 Windows 7 中工作。

当我尝试直接运行我的应用程序时,我看到一个关于缺少一些 DLL 的错误。我试图修复它们,但我不能(我尝试静态构建)。

有没有正确的解决办法?

我的问题是:

如果我想在其他计算机上运行我的 Qt 应用程序,我需要什么?例如,对于 .NET 应用程序,我们需要在目标计算机上安装 .NET 框架,但 Qt 呢?

我搜索了它的 SDK,发现一个大约 1.6 GB 的 SDK!这是否意味着每次我想安装我的应用程序时,我都应该安装一个 1.6 GB 大小的 SDK?这太糟糕了。

谢谢。

【问题讨论】:

    标签: qt deployment


    【解决方案1】:

    您必须使用所需的库来分发您的应用程序。 如果您的应用程序在 Windows 上运行,您可以遵循本指南:Deploying an Application on Windows。您可以在 SDK 内的 bin 目录中找到所需的库作为 dll。一个基本的 Qt gui 应用程序至少需要 QTCORE4.DLLQTGUI4.DLL,如果您使用的是 Qt Creator,则需要 MINGWM10.DLL。您可以将这些库与您的应用程序放在同一目录中。

    【讨论】:

    • 我找到了这些文件,并将它们与我的应用程序执行文件放在同一目录中,但出现错误
    • 什么错误?添加这些文件改变了什么?也许您正在使用其他模块(网络、xml...)或图像插件(png、jpeg...)
    • aaaaa 不,只是一个非常简单的应用程序,但我将 bin 路径添加到我的路径环境变量中,一切正常 ;-)
    • 将 bin 路径添加到环境变量 PATH 不会使您的应用程序在其他计算机上运行
    • 完全正确。这还不是我关心的问题。但是应对 ddls 并没有解决我的问题。我该怎么办?
    【解决方案2】:

    除非您已经在该配置中构建了库(如果您刚刚下载了预构建的 SDK,您不会这样做),否则您不能静态链接到 Qt。请注意,如果您确实想静态链接,则某些组件会受到许可影响。

    如果您已经构建了发布配置,那么您至少需要 Alessandro 提到的库 QtCore4.dll 和 QtGui4.dll。根据您使用的库的其他部分,您可能还需要 QtXml4.dll QtWebkit4.dll、QtXmlPatterns4.dll 和可能的 Phonon.dll。检查您是否正在构建发布配置而不是调试配置,因为它不会运行,因为它需要您无法重新分发的 Visual Studio 调试运行时。如果您不确定需要哪些 dll,请使用DependencyWalker 找出(请注意,这不会显示 Phonon.dll,因为它稍后会加载)。

    通常您只需要大约 4-6 个 dll,不需要整个 SDK。

    【讨论】:

      【解决方案3】:

      请考虑到许多应用程序都使用 Qt,您很有可能已经安装了 DLL。无论如何,请注意 MSVC 依赖项:我们在某些服务器上部署应用程序时遇到了一些真正的噩梦,部分原因与从 VS2005 到 VS2008 的策略切换有关。 Alessandro 已经提供了一个很好的资源:另请参阅 this 以前的帖子。

      【讨论】:

      • 如果它们已安装,它们在安装它们的程序中将是“私有的”,在它们的安装文件夹中,所以你不能依赖它并且无论如何都必须运送它们。
      【解决方案4】:

      如果您使用的是 Qt5,除了第一个答案提到的 .dll 之外,您还必须从 SDK 内的 bin 目录中添加平台/文件夹。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-02
        • 1970-01-01
        相关资源
        最近更新 更多