size my_obj.o
,以字节为单位列出text, .data segments
的大小。
但是readelf -t my_obj.o
给出了不同大小(更小)的文字&数据段。
**text .data .bss**
200890 4797 88
146172 1960 88
对象转储也会产生类似的结果。
答案 0 :(得分:3)
size
以“Berkeley兼容模式”运行。
在此模式下,它将包含某些设置了ALLOC位的非可执行只读部分(如.rodata
)作为文本,并将某些非可执行的非NOBITS部分分类为数据而不是bss 。
如果您在“系统V兼容模式”size
中运行size -A my_obj.o
,则应该为您提供接近readelf -t
报告的值的大小。