我对Windows上的源代码二进制文件有疑问。
#include <stdio.h>
int main()
{
printf("Hello, world!\n");
return 0;
}
相同的源代码,我在Windows上编译了两次(VS 2008 Cmmand Prompt:“CL”),但我得到了不同的二进制文件。
cl new.cpp
你们能告诉我为什么,以及如何避免这种情况?
答案 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 如何比较同一项目构建的二进制图像