代码之家  ›  专栏  ›  技术社区  ›  Peter Lee

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

  •  5
  • Peter Lee  · 技术社区  · 14 年前

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

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

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

    cl new.cpp
    

    3 回复  |  直到 9 年前
        1
  •  4
  •   josuegomes    14 年前

    时间戳是PE格式的一部分。不管是否编译为release,您总是会得到不同的值。

        2
  •  1
  •   Michael Dorgan    14 年前

    你编译成发行版了吗?Debug有内置的时间戳,可以在每次编译时更改您的exe

        3
  •  1
  •   Peter Lee    14 年前

    我搜索了一下,找到了一个中间解决方案:

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

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