首页 > 解决方案 > 为什么用 C 语言编写的无操作程序即使在 GCC 中使用 -nostdlib 选项编译时也会占用 14KB?

问题描述

我正在阅读一篇关于 C 中库的静态和动态链接的文章,该文章建议我应该编译一个程序,该程序仅通过 main 函数返回 0,并在有和没有-nostdlibGCC 选项的情况下比较它的大小。作者的可执行文件显示大幅减少(从 10KiB 到 3KiB),而我的可执行文件只是显示从 16KiB 减少到 14KiB。

这背后的原因是什么?这是因为使用的 GCC 版本发生了变化吗?如果是这样,它里面有什么占用 14KiB 的无操作程序?

编辑: GCC 版本 9.2.1,Ubuntu 19.10

标签: cgccstatic-librariesexecutable

解决方案


推荐阅读