2016-09-21 84 views
2

我正在查看一个Qt Windows应用程序,该应用程序硬编码部署所需的Qt库和文件,如Qt5Core.dll等。Qt最小部署

现在我知道有windeployqt工具来查找所有需要的文件。但是它产生的文件比目前包含的文件多得多。而且这款应用似乎运行良好,但没有其中的很多应用。我有点不确定windeployqt如何确定需要什么。真的需要一个合适的应用程序所有这些文件 - 还是windeployqt复制更多的文件比严格需要?换句话说,跳过它建议的一些文件有风险吗?

+1

您可能想详细说明您正在讨论的确切文件。例如,如果您确定不使用该图像格式,则可以安全地放弃某些特定的图像格式插件。部署工具无法知道。 – jpnurmi

+0

我现在没有真正考虑过任何特定的文件,更一般地说我可以完全知道*真正需要的windeployqt拷贝文件。当然,如果一个文件丢失,就很容易检查应用程序是否启动 - 我更担心在应用程序的罕见用例中可能会导致运行时问题。 – Zitrax

+0

做一个静态的Qt构建,让你的生活变得轻松。最终结果是一个没有外部依赖的单个可执行文件。自Qt 5.7以来,它也可以用于QML项目。对于core + gui/widgets +网络,可执行文件大小约为8 MB。 – dtech

回答

1

根本不需要使用windeployqt。要在开发过程中使用,您应该添加必要的可部署文件作为目标,并将这些目标添加到INSTALLS。然后你做[n]make install并且部署所有东西。您可以将此目标添加到Qt Creator的项目配置中,以便生成它。

当然,这仍然是一个拐杖,因为对于Windows,您实际上需要安装程序:安装程序编译器的工作是收集所有必需的文件。

+0

是的,我有一个安装程序。所以我正在考虑继续使用硬编码文件列表 - 但是从windeployqt输出目录中检索它们,而不是在Qt安装目录中进行挖掘以找到最初放置的位置。 – Zitrax

+0

从Qt目录中获取它们要容易得多。他们的位置都是标准的。 –