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

时间:2012-06-19 08:24:28

标签: c++ qt linker executable static-libraries

我静态链接Qt,链接器或其他工具可以避免将未使用的二进制代码(从Qt库)添加到最终的可执行文件中吗?我不认为我使用了所有10 MB的Qt库代码。

1 个答案:

答案 0 :(得分:4)

如果你自己编译Qt库并且正在使用g ++,你应该尝试使用Link Time Optimisation (LTO)选项。 您可以通过在所有g ++调用中添加-flto来完成此操作。这让g ++将所谓的GIMPLE代码添加到与源相对应的目标文件中(因此它不是完全编译的)。在链接步骤中,您应该添加-fwhole-program或-fuse-linker-plugin。然后gcc读取Gimple代码,并优化整个程序,因此它应该能够摆脱任何未使用的代码。但是我不能保证这件作品适合你。