当我编译程序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/
中的大多数二进制文件都被删除。
答案 0 :(得分:0)
AFAIK剥离二进制文件后,除非重新生成二进制文件,否则将无法获取剥离的信息。当您有内存限制需要处理时,剥离非常有用。这可能是GCC默认情况下未启用strip的原因。