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

标签 c++ qt linker executable static-libraries

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

最佳答案

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

关于c++ - 链接后的最小可执行文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11097131/

相关文章:

c++ - 冒泡排序中预期的交换次数

c++ - 特征一元Expr() : get index of element

c++ - 多个 QApplication 实例

C++ 迭代器和反向迭代器

c++ - 与 C++ std::future 的数据竞争。编译器重新排序

c++ - Qt:有效地在父小部件上绘制小部件的正确方法

c++ - Qt 有资源系统限制吗?

c - 优化C编译: removed unreferenced parts on-the-fly

linker - 链接器最初是如何以及为什么作为独立于编译器的工具开发的?

c++ - 构建带有 .v2 扩展名的 Boost 日期/时间 Jamfile