为什么二进制编译时gcc没有默认剥离

时间:2014-05-18 18:26:58

标签: c gcc

当我编译程序gcc -o myprog myprog.c时,生成的二进制文件不会被剥离:

myprog: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically 
linked (uses shared libs), for GNU/Linux 2.6.26, 
BuildID[sha1]=0x2697ed96b65e8a11239af0a44abc7896954b6e20, not stripped

我想知道为什么gcc默认情况下会产生非剥离的二进制文件,当我没有提供任何debuging参数时。

编译后是否应删除所有二进制文件,即使用strip myprog?或者是否存在二进制非剥离的优势?

AFAICS,/bin//usr/bin/中的大多数二进制文件都被删除。

1 个答案:

答案 0 :(得分:0)

AFAIK剥离二进制文件后,除非重新生成二进制文件,否则将无法获取剥离的信息。当您有内存限制需要处理时,剥离非常有用。这可能是GCC默认情况下未启用strip的原因。