0

如果我用 MinGW 编译 C hello world,生成的 exe 是 42Kb。如果我使用 Tiny C 编译器,我会得到 2Kb。(在这两种情况下都没有指定任何选项或做任何有趣的事情,只需 gcc hello.c -o hello.exe)

现在我知道需要最少的启动代码;但是 mingw 放在那里的额外 40kb 的东西是什么,它有什么作用,为什么需要它?

4

1 回答 1

-1

常见问题解答

调试信息

可执行文件比预期大的最常见原因是它们包含调试信息,这些信息是在使用 GCC 的“-g”选项编译源文件时生成的。即使您自己的源文件在没有调试信息的情况下编译,与您的可执行文件链接的库也可能已使用“-g”编译(可能包括与 MinGW 一起分发的系统库)。

要从可执行文件中排除调试信息,只需使用“strip”命令将其删除,或者在链接时使用“-s”选项。

UPX(可执行文件的终极打包程序)

UPX 是一种可以减少可执行文件大小的工具,它使用非常快速和非常有效的就地压缩/解压缩。它适用于 Windows 和 Linux 可执行文件,并可免费用于所有应用程序(包括商业应用程序)。

于 2016-11-19T13:36:09.913 回答