考虑以下c / c ++代码:
int main () {
int a = 1;
int b = 2;
int c = a + b;
}
当我在Windows上使用g ++ (MinGW-W64项目)对此进行编译时,.exe文件最终以 53KB
但是当我在Ubuntu上用g ++编译时,.out文件最终只有 8KB
两个输出文件之间的大小差异为何如此之大?
答案 0 :(得分:3)
可执行文件不仅包含编译后的代码,还包含其他信息,这些信息在不同的可执行文件格式之间会有所不同。
对显示的代码进行优化将完全消除,即使不进行优化,给定的代码也只会导致少量字节的机器代码。因此,对于您的程序,〜53KB和〜8KB是可执行文件元信息的大小。