Какую информацию обо мне и моей системе добавляют компиляторы в исполняемые файлы? - PullRequest
11 голосов
/ 08 апреля 2010

В настоящее время я использую Microsoft Visual Studio 2010.

Если мы скажем, что мы даем 10 разным людям копию MSVC 10 и короткий список C ++ Hello, World. Все они создают новый проект с одинаковыми настройками, добавляют новый файл cpp с помощью программы Hello, World и компилируют его.

  • Все ли они получают один и тот же двоичный файл?
  • Если нет, каковы точные различия?
  • Какую информацию о моей системе MSVC добавляет в мой исполняемый файл?

Паранойя!

Ответы [ 3 ]

2 голосов
/ 12 апреля 2010

Если вы каждый создаете проект с нуля, вы по крайней мере получите разные GUID, если предположить, что это тип проекта, который требует GUID. GUID устанавливается во время создания проекта, поэтому, если один из вас создаст проект, а затем вы поделитесь проектом, разницы в двоичных файлах не будет. В GUIDs AFAIK нет идентифицируемой информации.

1 голос
/ 29 июня 2011

Просто не могу не ответить, даже если вопросу больше года.

Помимо того, что уже было упомянуто (исходные пути и руководства), в большинстве переносимых исполняемых файлов, известных как Rich Header, есть структура.

Более подробную информацию можно найти по следующим ссылкам:

http://ntcore.com/files/richsign.htm

http://web17.webbpro.de/index.php?page=microsofts-rich-header

0 голосов
/ 08 апреля 2010

Насколько я знаю, вы получите точно такой же двоичный файл ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...