在任何平台上执行任何 Qt5 应用程序的重要 dll 文件是啥(运行时文件 dll)?
Posted
技术标签:
【中文标题】在任何平台上执行任何 Qt5 应用程序的重要 dll 文件是啥(运行时文件 dll)?【英文标题】:What is the important dll files to execute any Qt5 application on any platform (Runtime files dll)?在任何平台上执行任何 Qt5 应用程序的重要 dll 文件是什么(运行时文件 dll)? 【发布时间】:2014-01-12 19:23:51 【问题描述】:我在Qt5
中创建了一个简单的应用程序,但是当在例如 windows 7 中运行该应用程序时,告诉我 dll 文件缺少某些内容,以及另一个 dll 和另一个 dll。
现在我想要一个包含任何 Qt 应用程序所需的所有 dll 文件的包。 或者,运行任何 Qt 应用程序所需的重要 dll 文件是什么?
【问题讨论】:
究竟缺少哪些 dll? @Laszlo Papp:我说的是一般情况,我想要一个包含任何 Qt 应用程序所需的所有 dll 文件的包。 那么问题变得过于宽泛,有很多选项,因此可能会被关闭。这将取决于很多因素,你如何配置 Qt,你正在创建什么样的应用程序,你正在使用什么库,哪个操作系统,哪个发行版等等......我建议指定问题。 @Laszlo Papp:我问这个问题是因为任何 Qt 应用程序都需要许多 dll 文件才能工作,收集所有 dll 文件以使该应用程序工作是没有意义的。出于这个原因,我问这个问题是为了获得一个包含任何 qt 应用程序所需的所有 dll 的包。 恐怕这可能是不正确的。我个人在没有“许多 dll”的情况下将许多 Qt 应用程序部署到多个客户端。恕我直言,写一个涵盖每种情况的答案太长了。 【参考方案1】:或者,运行任何 Qt 应用程序所需的重要 dll 文件是什么?
一般来说,您正在使用的 Qt 模块。如果你使用 QtSql,你需要有相应的 dll,但是对于任何模块都是一样的。对于一个简单的核心应用程序,您需要分别拥有 QtCore dll。我可以继续列举,但我相信你看到了它的模式。
更进一步,如果您碰巧使用 qmake,则需要在 LIBS
变量中指定您的依赖项。这也是您需要了解您的直接依赖关系的地方。
通常是单个库名称,但在复杂的情况下,您始终可以阅读项目的文档。要点是您需要在不调试的情况下了解这一点。后者更像是事后的想法。
没有“隐藏的依赖”。由于您正在对项目进行编码,因此您知道您使用的依赖项。您需要运送它们。
当出现您不知道的问题时,有一些奇怪且罕见的情况,例如在具有不同 VS/MSVC 设置的不同机器上缺少 dll。在这种情况下,最好不要为每台可能的终端机器提供所有 dll,但终端机器应该安装可再发行包。
在上述情况不满足的极少数情况下,您可以检查错误消息。如果仍然不清楚,您可以使用自省工具来调试问题,例如依赖遍历器。
免责声明:此答案与问题一样广泛。
【讨论】:
以上是关于在任何平台上执行任何 Qt5 应用程序的重要 dll 文件是啥(运行时文件 dll)?的主要内容,如果未能解决你的问题,请参考以下文章