如果我使用MinGW编译C hello world,则生成的exe为42Kb。如果我使用Tiny C Compiler,我会得到2Kb的东西。 (在两种情况下都没有指定任何选项或做任何有趣的事情,只需gcc hello.c -o hello.exe)
现在我知道需要最少的启动代码;但是mingw放在那里的额外40kb的东西是什么,它做了什么,为什么需要呢?
答案 0 :(得分:-1)
来自the FAQ:
调试信息
可执行文件大于的最常见原因 预计它们包含调试信息,即 使用" -g"编译源文件时生成的GCC的选择权。 即使您自己的源文件是在没有调试的情况下编译的 信息,与您的可执行文件链接的库可能已经 使用" -g"编译(可能包括系统库 与MinGW一起分发。
要从可执行文件中排除调试信息,只需使用 "带材"命令删除它,或者使用" -s"选项 链接时。
UPX(针对可执行文件的Ultimate Packer)
UPX是一种可以减少的工具 可执行文件的大小,使用非常快速和非常高效的就地 压缩/解压缩。它适用于Windows和Linux可执行文件 并且可以免费用于所有应用程序(包括商业应用程序)。