最小的Qt可执行文件大小

时间:2009-01-16 13:50:11

标签: c++ windows qt

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

事情可能同时发生了变化。现在Qt中“hello world”(windows和console)的大小是多少?

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:3)

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

configure --help

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