相同的简单源代码,Windows上的不同二进制文件

Pet*_*Lee 5 windows binary compilation visual-c++

我对Windows上的源代码二进制文件有疑问.

#include <stdio.h>

int main()
{
    printf("Hello, world!\n");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

相同的源代码,我在Windows上编译了两次(VS 2008 Cmmand Prompt:"CL"),但我得到了不同的二进制文件.

cl new.cpp
Run Code Online (Sandbox Code Playgroud)

你们能告诉我为什么,以及如何避免这种情况?

jos*_*mes 4

时间戳是 PE 格式的一部分。无论是否编译为发行版,您总是会得到不同的值。

  • @Peter:ELF(Linux 的可执行格式)没有时间戳字段。如果输出不同,为什么很重要? (2认同)