当使用相同的c / c ++源代码编译时,为什么“ .exe”比“ .out”大得多?

时间:2019-09-21 15:25:39

标签: c++ g++

考虑以下c / c ++代码:

int main () {
    int a = 1;
    int b = 2;
    int c = a + b;
}

当我在Windows上使用g ++ (MinGW-W64项目)对此进行编译时,.exe文件最终以 53KB

但是当我在Ubuntu上用g ++编译时,.out文件最终只有 8KB

两个输出文件之间的大小差异为何如此之大?

1 个答案:

答案 0 :(得分:3)

可执行文件不仅包含编译后的代码,还包含其他信息,这些信息在不同的可执行文件格式之间会有所不同。

对显示的代码进行优化将完全消除,即使不进行优化,给定的代码也只会导致少量字节的机器代码。因此,对于您的程序,〜53KB和〜8KB是可执行文件元信息的大小。