3

I link with Qt statically, so can linker or some other tool avoid adding unused binary code (from Qt libraries) to the final executable? I don't think i use all the 10 MB of Qt library code.

4

1 回答 1

4

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

于 2012-06-19T08:49:39.843 回答