gcc编译的可执行文件大小

时间:2016-02-08 05:56:25

标签: gcc filesize

您好专家请回答我的以下问题。 对于二进制文件的大小' 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'?为什么两个命令显示不同的结果?

3 个答案:

答案 0 :(得分:1)

ls程序为您提供了4.3M的文件大小(实际上是4.5M,因为-h使用了错误的前缀......但这不相关)。

sizes程序会给出部分大小。并非所有部分都包含在内,这就是为什么它更小。您的程序可能包含调试信息,但不会由sizes打印出来。

答案 1 :(得分:0)

您的文件test可能包含size未报告的调试信息。 ll -h更准确地获取实际文件大小,但-h选项已将其缩写为可读性。您可以使用ls -lll)或stat获取确切的文件大小。

阅读sizeobjdumpreadelf的文档以了解详情。

答案 2 :(得分:0)

运行以下命令:

size .\test.exe

输出::

text    data     bss     dec     hex filename   
 9400    1576    1004   11980    2ecc .\test.exe