Я использую компилятор MSV C x86 14.16.27023 с флагом / INCREMENTAL для создания файла .ilk и выполнения инкрементного связывания. Я заметил, что когда я делаю инкрементную ссылку (т. Е. Я позволяю своему файлу .ilk выполнять свою работу), мой файл .exe содержит немного другие данные, чем если бы я удалил свой файл .ilk и принудительно установил полную ссылку. Разница очень мала, но они важны для меня (я не буду go объяснять, почему сэкономить время). Я использовал dumpbin / ALL и / DISASM на обоих, а затем использовал diff, чтобы получить следующие результаты:
Dump of file sys.exe.w_ilk.txt
| Dump of file sys.exe.wo_ilk.txt
5E861117 time date stamp Thu Apr 2 11:21:43 2020
| 5E861156 time date stamp Thu Apr 2 11:22:46 2020
014CBD20: 04 62 A7 05 E8 67 00 00 00 83 C4 0C C6 05 48 F5
| 014CBD20: 04 62 A7 05 E8 67 00 00 00 83 C4 0C C6 05 E8 7A
014CBD30: 09 04 01 C6 05 49 F5 09 04 01 B9 E5 07 00 00 66
| 014CBD30: 64 09 01 C6 05 E9 7A 64 09 01 B9 E5 07 00 00 66
014CBD40: 89 0D 4A F5 09 04 E8 71 A0 F8 FE 8B 55 FC 52 E8
| 014CBD40: 89 0D EA 7A 64 09 E8 71 A0 F8 FE 8B 55 FC 52 E8
022FDB60: 3A 32 31 3A 33 37 0A 36 2E 34 34 0A 30 62 61 32
| 022FDB60: 3A 32 32 3A 34 32 0A 36 2E 34 34 0A 30 62 61 32
022FDF60: 3A 32 31 3A 33 37 00 00 00 00 00 00 00 00 00 00
| 022FDF60: 3A 32 32 3A 34 32 00 00 00 00 00 00 00 00 00 00
0390CBD0: 00 00 00 00 A4 0F 86 5E 00 00 00 00 02 00 00 00
| 0390CBD0: 00 00 00 00 56 11 86 5E 00 00 00 00 02 00 00 00
0390CBF0: A4 0F 86 5E 00 00 00 00 0C 00 00 00 14 00 00 00
| 0390CBF0: 56 11 86 5E 00 00 00 00 0C 00 00 00 14 00 00 00
03923460: 34 0A 96 44 AC 85 24 05 C8 2F 3D 42 0F 00 00 00
| 03923460: 34 0A 96 44 AC 85 24 05 C8 2F 3D 42 10 00 00 00
5E860FA4 cv 6C 03523458 3522A58 Format: RS
| 5E861156 cv 6C 03523458 3522A58 Format: RS
5E860FA4 feat 14 035234C4 3522AC4 Counts: Pr
| 5E861156 feat 14 035234C4 3522AC4 Counts: Pr
D2E HIGHLOW 0409F548
| D2E HIGHLOW 09647AE8
D35 HIGHLOW 0409F549
| D35 HIGHLOW 09647AE9
D42 HIGHLOW 0409F54A
| D42 HIGHLOW 09647AEA
, а затем для разборки:
Dump of file sys.exe.w_ilk.txt
| Dump of file sys.exe.wo_ilk.txt
014CBD2C: C6 05 48 F5 09 04 mov byte ptr ds:[0409F
| 014CBD2C: C6 05 E8 7A 64 09 mov byte ptr ds:[09647
014CBD33: C6 05 49 F5 09 04 mov byte ptr ds:[0409F
| 014CBD33: C6 05 E9 7A 64 09 mov byte ptr ds:[09647
014CBD3F: 66 89 0D 4A F5 09 mov word ptr ds:[0409F
| 014CBD3F: 66 89 0D EA 7A 64 mov word ptr ds:[09647
04
| 09
Кто-нибудь знает, почему эти различия может существовать?