小编Ant*_*ine的帖子

GCC 正在生成填充零的二进制文件

我试图弄清楚为什么 GCC 生成的二进制文件如此之大。

考虑这个空程序:

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我使用GCC 9.2.1 20190827 (Red Hat 9.2.1-1)glibc 2.29构建它,没有任何附加参数:

gcc -o test test.c

生成的二进制文件为 21984 字节 (~22 KB)。查看使用 生成的文件xxd,在多个地方有大量的空字节:

00000370: 006c 6962 632e 736f 2e36 005f 5f6c 6962  .libc.so.6.__lib
00000380: 635f 7374 6172 745f 6d61 696e 0047 4c49  c_start_main.GLI
00000390: 4243 5f32 2e32 2e35 005f 5f67 6d6f 6e5f  BC_2.2.5.__gmon_
000003a0: 7374 6172 745f 5f00 0000 0200 0000 0000  start__.........
000003b0: 0100 0100 0100 0000 1000 0000 …
Run Code Online (Sandbox Code Playgroud)

c gcc glibc uclibc musl

5
推荐指数
2
解决办法
263
查看次数

标签 统计

c ×1

gcc ×1

glibc ×1

musl ×1

uclibc ×1