如何缩小Qt应用程序

How can I make Qt app smaller

本文关键字:Qt 应用程序 缩小 何缩小      更新时间:2023-10-16

我是qt的新手。我制作了一个非常简单的qt程序,因为我没有商业许可证,所以我使用了dependencywalker,并将qtsdk文件夹中的所有.dll添加到了发布文件夹中。它运行得很好。但当我检查它的尺寸时,它非常大。我的问题是我怎样才能把它变小。还要解释静态库和动态库之间的区别,以及它如何影响应用程序的大小。有多少方法可以让qt应用程序在不购买商业许可的情况下变得更小。感谢您的帮助。

通常,您无法显著减小应用程序及其依赖项的大小。有几件事我认为你没有考虑过,或者,如果必要的话,可以做:

  1. 您不需要所有的Qt DLL。根据你使用的Qt的哪些部分,你可以省略QtWebKit和其他东西。这很可能会将应用程序的重新分发大小减半。

  2. 如果是您的可执行文件很大,请尝试使用优化大小而不是速度的选项进行编译。最终的性能应该接近甚至可能比通常的优化效果更好,这取决于您的应用程序。这对于GCC是-Os,对于MSVC是/Os

  3. 剥离调试符号的DLL和可执行文件。发布版本应该已经自动完成了这项工作。我希望你不要抱怨调试二进制文件的大小。。。

  4. 用类似UPX的东西压缩二进制文件。不过,这只是表面上的,也有一些微妙的缺点。

  5. 使用上述选项重新编译Qt,这可能会减少Qt DLL总大小的5-10%。您还可以禁用不需要的功能(如未使用的Qt样式),从而进一步减小DLL的大小。但这很乏味,可能不值得,因为无论何时更新到最新版本,都需要重新编译Qt。


也就是说,如果你的代码是GPL许可的,没有什么可以阻止你静态链接Qt。您需要自己编译静态Qt库,或者在某个地方找到它们。通常,静态链接会增加可执行文件的大小,但可能会允许编译器从通常仍存在于DLL版本中的映像中省略未使用的代码。所以,是的,静态链接可能会使应用程序的总大小变小。