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



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

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

最新更新