Cela a été demandé auparavant pour VC++ mais je suis intéressé par la réponse de Solaris.Est-ce que Solaris cc est incorporé dans un fichier exécutable différent pour différentes compilations?
Je compiler et lier le code trivial C suivant:
#include <stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
en utilisant la commande:
cc -o hello1 hello.c
et faisant deux ou trois fois pour obtenir executables hello2 et hello3. Ceci est fait sur la même machine avec le même compilateur et dans le même répertoire juste à des moments différents.
Les tailles des exécutables sont les mêmes mais diff indique que les binaires sont différents et cmp -l devient fou avec une longue liste d'emplacements différents. Quelqu'un sait-il ce que cc incorpore dans les exécutables pour les différencier? Horodatages?
Éditer: L'effacement des exécutables comme Chris suggéré ci-dessous fait que les deux exécutables sont identiques.
acclamations,
Regardez ELF peut-être. – LB40
Tout à fait un commentaire en retard, mais voir http://stackoverflow.com/a/36591217/211665 pour une explication plus précise et une méthode pour comprendre les différences réelles. – jlliagre
Merci pour le pointeur @jlliagre –