Один и тот же простой исходный код, разные двоичные файлы в Windows - PullRequest
5 голосов
/ 08 июля 2010

У меня есть вопрос о двоичном коде исходного кода в Windows.

#include <stdio.h>

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

    return 0;
}

Тот же самый исходный код, я дважды скомпилировал в Windows (VS 2008 Cmmand Prompt: "CL"), но я получил другоедвоичные файлы.

cl new.cpp

Скажите, пожалуйста, почему и как этого избежать?

Ответы [ 3 ]

4 голосов
/ 08 июля 2010

Метка времени является частью формата PE. Вы всегда получите разные значения независимо от того, компилируется ли это как релиз или нет.

1 голос
/ 08 июля 2010

Я гуглил и нашел промежуточное решение:

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

http://support.microsoft.com/kb/164151 Как сравнить двоичные изображения одного и того же проекта сборки

1 голос
/ 08 июля 2010

Вы скомпилировали как релиз? В Debug встроены временные метки, которые могут изменять ваш exe-файл для каждой компиляции

...