【问题标题】:Minimal Qt executable-size最小的 Qt 可执行文件大小
【发布时间】:2010-10-01 19:35:28
【问题描述】:

现在 Qt 进入 LGPL,我倾向于再试一次。几年前,我出于某些原因决定反对,其中一个原因是可执行文件的巨大尺寸(Windows 上的 Qt)。我找到了大约 5MB 的下限。 Trolltech 应要求确认了这一点,但告诉我,粒度将得到改进,这将导致更小的尺寸(取决于所需的元素)。

与此同时,情况可能会发生变化。现在 Qt 中“hello world”(窗口和控制台)的大小是多少?

这是关于静态链接的。 我认为 qtCore 和 qtGui 是必需的。

【问题讨论】:

  • 您在哪里静态或动态链接到 QT?
  • 你想链接 Qt 的哪些部分?有一个 QtCore(非 GUI 类)和 QtGui(有小部件)。 Qt 被分解成模块。如果您知道您可能对哪些模块感兴趣,则可以确定更准确的最小值。 doc.trolltech.com/4.4/modules.html

标签: c++ windows qt


【解决方案1】:

这里有一个Discussion from 2007,我快速浏览后看到的最小数字是1.3 MB(使用UPX压缩),所以它似乎可以降低一点,但仍然相当大。

【讨论】:

    【解决方案2】:

    我们的Installbuilder for Qt 产品是一个跨平台的安装工具,它有一个 Qt 前端,被许多商业开发人员使用(包括 Trolltech 自己来打包他们的QtCreator IDE)。使用 4.4 并编译出我们不需要的部分,我们将开销降低到 Linux x86 上的 4.1 Mb、Linux x64 上的 5.2M 和 Windows 上的 5.3Mb。考虑到这是在使用 UPX 处理它之前。此外,如果同一个二进制文件需要支持多个 Linux 发行版,您可能需要考虑发布 libstdc++,这将增加大约 800kb 的大小。

    您将需要构建自己的版本,并且基本上为您不使用的小部件、您不需要支持的图像格式等启用/禁用 ifdef#。尽管 Qt 源代码已经为此做好了准备,并且有一些工具应该会有所帮助,现实情况是这是一个繁琐的手动过程(但对于我们这样的应用程序来说是必要的)。他们的嵌入式版本(以前称为 QTopia)和“常规”Qt 被合并到同一个代码库中,所以我确信继续前进,构建定制/精简版本会越来越容易。

    【讨论】:

      【解决方案3】:

      这在很大程度上取决于您的配置和部署方法。您当然可以编译为静态,这将排除未使用的代码。您还可以去除异常和 STL 之类的东西,这将使内存和磁盘占用空间更小。最后,无论您使用的是压缩文件系统,如 squashfs、cramf 还是 jffs2。试试

      configure --help
      

      有很多选择。使用 Qt for Embedded Linux 和 Windows CE 的嵌入式端口,您还可以使用 qconfig 加载配置文件,从而可以去除许多功能组。请参阅http://doc.trolltech.com/main-snapshot/fine-tuning-features.html 了解更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 2010-09-17
        • 2022-01-13
        • 1970-01-01
        • 2018-07-15
        • 1970-01-01
        相关资源
        最近更新 更多