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

我有一个有关Windows上的源代码二进制文件的问题。

#include <stdio.h> int main() { printf("Hello, world!\n"); return 0; } 

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

 cl new.cpp 

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

时间戳是PE格式的一部分。 不管是否编译为释放,您都将获得不同的值。

你编译为发布? 调试有内置的时间戳可以改变你的exe每个编译

我GOOGLE了,发现一个中途解决方案:

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

http://support.microsoft.com/kb/164151如何比较相同的项目生成的二进制映&#x50CF;