gpt4 book ai didi

c++ - 如何减小 MinGW g++ 编译器生成的可执行文件的大小?

转载 作者:IT老高 更新时间:2023-10-28 22:13:48 26 4
gpt4 key购买 nike

我有一个简单的“Hello world”C++ 程序,它在 Win XP 下由 MinGW g++ 编译器编译为 500kB 可执行文件。有人说这是由 iostream 库和 libstdc++.dll 的静态链接引起的。

使用 -s 链接器选项有点帮助(减少 50% 的大小),但我只对 <10kB 可执行文件感到满意。有没有办法使用 MinGW 编译器来实现这一点?便携性对我来说不是一个大问题。

是否可以使用动态链接将 libstdc++.dll 与可执行文件一起复制?如果可以,如何实现?


已解决:我使用的是 MinGW 3.4。现在我更新到最新的 MinGW 4.6,大小减少了 90% 到 50kB,使用 -s 选项甚至到了 9kB,这完全足够了。无论如何-感谢大家的帮助。给你我的结果

C++ Hello World 程序使用 iostream

MinGW | no options | -s option
------------------------------
3.4 | 500kB | 286 kB
4.6 | 50kB | 9 kB

最佳答案

要使用的标志:

  • -s 就像你一直在做的那样去除符号
  • -lstdc++_s 指定动态链接到 libstdc++.dll
  • -Os 优化二进制文件的大小。

默认情况下,mingw 静态链接到 Windows 上的 libstdc++.a

请注意 lstd​​c++_s 标志仅在 GCC > 4.4 的 MinGW 中,我相信。

关于c++ - 如何减小 MinGW g++ 编译器生成的可执行文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7973274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com