C++ 最小Qt可执行文件大小

C++ 最小Qt可执行文件大小,c++,windows,qt,C++,Windows,Qt,现在Qt变成了LGPL,我倾向于再试一次。几年前,出于某些原因,我决定不这样做,其中一个原因是巨大的可执行文件(windows上的Qt)。我发现下限约为5MB。Trolltech在请求时确认了这一点,但告诉我,粒度将得到改进,这将导致更小的大小(取决于所需的元素) 与此同时,情况本可以改变。现在Qt中“hello world”(windows和控制台)的大小是多少 它是关于静态链接的。 我认为qtCore和qtGui是必需的。这里有一个,我快速浏览后看到的最小数字是1.3MB(使用压缩),因此它

现在Qt变成了LGPL,我倾向于再试一次。几年前,出于某些原因,我决定不这样做,其中一个原因是巨大的可执行文件(windows上的Qt)。我发现下限约为5MB。Trolltech在请求时确认了这一点,但告诉我,粒度将得到改进,这将导致更小的大小(取决于所需的元素)

与此同时,情况本可以改变。现在Qt中“hello world”(windows和控制台)的大小是多少

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

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

我们的产品是一个跨平台安装工具,有一个Qt前端,许多商业开发人员都使用它(包括Trolltech自身的包装)使用4.4和编译出我们不需要的部分,我们在Linux X86上的开销降低到4.1 MB,Linux上的X64和5.3MB在Windows上的5.2m。考虑到这是在用UPX处理它之前,同样,如果相同的二进制需要支持多个Linux发行版,您可能需要考虑装运LBSTDC +,这将增加Abou.t将800kb调整为大小


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

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

configure --help

有很多选项。通过嵌入式Linux和Windows CE的Qt嵌入式端口,您还可以使用qconfig加载配置文件,这些文件允许您删除许多功能组。有关更多信息,请参阅。

静态或动态链接到Qt的位置?要链接Qt的哪些部分?有QtCore(非GUI类)和QtGuiQt被分解成模块。如果你知道你可能对哪些模块感兴趣,可以确定一个更准确的最小值。