2 votes

Pourquoi chaque compilation modifie-t-elle le fichier exe ?

La construction du même projet (sans aucune modification) produit binaire différent fichiers exe : certaines petites régions sont différentes. Projet vide, l'information sur la version (et l'auto-incrémentation à chaque compilation) est désactivée.

Pourquoi cela se produit-il ? Et est-il possible de faire en sorte que delphi produise des fichiers binaires égaux pour les mêmes projets ?

15voto

devstuff Points 5881

Les différentes structures du format de fichier exécutable PE utilisé par Windows comprennent des horodatages qui sont définis par le compilateur et l'éditeur de liens.

Il est possible de post-traiter le fichier pour réinitialiser ces valeurs à une constante définie (j'ai écrit un outil pour faire exactement cela pour un produit sécurisé qui nécessitait des valeurs de hachage exactes), mais cela ne devrait être fait que sur des exécutables prêts à l'emploi, car certains débogueurs s'appuient sur les horodatages pour la recherche des sources, etc.

2voto

Lasse V. Karlsen Points 148037

Essayez de changer le problème en "Comment éviter la compilation s'il n'y a pas de changements dans les sources", ce sera peut-être plus facile à traiter.

1voto

macropas Points 1382

Je soupçonne une insertion du compilateur dans le temps encodé *.exe, des nombres ordinaux spéciaux (pour les versions) et peut-être d'autres choses :) Il est impossible de forcer Delphi à produire une sortie binaire égale.

0voto

Peter Miehle Points 3753

Il se peut que des horodatages réels soient compilés dans le fichier exe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X