为什么可执行文件的文件大小比源文件大?我做了下面的例子(我能想到的最简单的例子),它的可执行文件与源代码相比仍然非常巨大,即使(我认为)它没有使用任何库。为什么可执行文件的文件大小比不带include的.cpp源文件大?
Simplest.cpp:33个字节
Simplest.s:386个字节
Simplest.exe:60076个字节
Simplest.cpp:
int main(void)
{
return 0;
}
Simplest.s:
.file "Simplest.cpp"
.def ___main; .scl 2; .type 32; .endef
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
andl $-16, %esp
call ___main
movl $0, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
LFE0:
.ident "GCC: (GNU) 4.8.3"
不确定它是否相关,但是我在Windows 8上使用g ++编译器在cygwin上使用Intel处理器。
_Not知道,如果是相关的,但我用G ++编译器在带有Intel处理器的Windows 8上的cygwin上._ < - 所有这些都与_absolutely_相关。 –
您可以运行'objdump -s -d Simplest.exe'来查看最终可执行文件的内容。但我不确定该工具是否适用于您的平台。 – 5gon12eder
@ 5gon12eder谢谢,我试过了,能够看到很多其他东西都包含在可执行文件中。 – circularsoggy