链接后的最小可执行文件大小

3

我使用Qt进行静态链接,那么链接器或其他工具能否避免将未使用的二进制代码(来自Qt库)添加到最终可执行文件中?我认为我没有使用所有10 MB的Qt库代码。

1个回答

4
如果您在某个时间点自己编译Qt库并且使用g++,则应尝试使用链接时优化(LTO)选项。您可以通过将-flto添加到所有g++调用中来实现此目的。这使得g ++向您的对象文件添加所谓的GIMPLE代码,该代码对应于您的源代码(因此它没有完全编译)。在链接步骤中,您应该添加-fwhole-program或-fuse-linker-plugin。然后gcc读取Gimple代码,并将您的程序作为整体进行优化,从而应该能够摆脱任何未使用的代码。但是我不能保证这适用于您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接