1

size my_obj.otext, .data segments,以字节为单位列出大小。

readelf -t my_obj.o给出不同大小(小得多)的文本和数据段。

 **text    .data   .bss**
 200890   4797     88   
 146172   1960     88 

对象转储也给出了类似的结果。

4

1 回答 1

3

size默认情况下以“Berkeley 兼容模式”运行。在这种模式下,它将包含某些设置了 ALLOC 位的非可执行只读段,例如.rodata,作为文本,并且它将一些不可执行的非 NOBITS 段分类为数据而不是 bss。如果您size在“System V 兼容模式”下运行size -A my_obj.o,它应该为您提供接近由 报告的值的大小readelf -t

于 2013-11-20T16:43:33.120 回答