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

时间:2010-07-08 16:11:17

标签: windows visual-c++ compilation binary

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

#include <stdio.h>

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

    return 0;
}

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

cl new.cpp

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

您是否编译为发布? Debug内置了时间戳,可以改变你的exe编译

答案 2 :(得分:1)

我用谷歌搜索,找到了一个中途解决方案:

DUMPBIN  /RAWDATA  MyApp.EXE > first.txt
DUMPBIN  /RAWDATA  MyApp.EXE > second.txt

http://support.microsoft.com/kb/164151 如何比较同一项目构建的二进制图像