您好专家请回答我的以下问题。 对于二进制文件的大小' test'我在linux fedora中使用了以下命令,并由gcc编译器编译。
$ll -h test
-rwxrwxr-x. 1 user user 4.3M Feb 8 11:17 test
$size test
text data bss dec hex filename
891714 244788 26664 1163166 11bf9e test
我的问题是哪个是正确的命令来了解可执行文件的大小' test'?为什么两个命令显示不同的结果?
答案 0 :(得分:1)
ls
程序为您提供了4.3M的文件大小(实际上是4.5M,因为-h
使用了错误的前缀......但这不相关)。
sizes
程序会给出部分大小。并非所有部分都包含在内,这就是为什么它更小。您的程序可能包含调试信息,但不会由sizes
打印出来。
答案 1 :(得分:0)
您的文件test
可能包含size
未报告的调试信息。 ll -h
更准确地获取实际文件大小,但-h
选项已将其缩写为可读性。您可以使用ls -l
(ll
)或stat
获取确切的文件大小。
阅读size
,objdump
和readelf
的文档以了解详情。
答案 2 :(得分:0)
运行以下命令:
size .\test.exe
输出::
text data bss dec hex filename
9400 1576 1004 11980 2ecc .\test.exe