Do C ++ noms restent cohérents déchiquetés lors de la compilation sur différents ordinateurs?

StackOverflow https://stackoverflow.com/questions/5370201

Question

En général, ce que j'ai observé en utilisant nm sur Linux est que les noms de symboles de T (que je suis intéressé) rester cohérent sur différents ordinateurs, même quand je ne suis pas en utilisant extern "C". Est-ce mon observation correcte?

Remarque J'utilise gcc sur tous les ordinateurs.

Était-ce utile?

La solution

Il serait très inhabituel pour l'ordinateur, l'heure du jour ou le temps d'affecter le nom mutiler.

De plus susceptibles de causer des écarts est des différences dans la version du compilateur.

Mais de nombreuses plates-formes Linux définissent une (interface binaire d'application) ABI C ++ qui inclut, entre autres, le nom des règles mangling. Sur ces plateformes le même code source compilera les mêmes noms déchiquetés, quel que soit les niveaux d'optimisation, les versions compilateur, le nom d'hôte, le numéro de série du disque dur, le temps de la journée, la météo, si votre équipe sportive préférée a perdu la semaine dernière, ou tout facteur non explicitement mentionné dans l'ABI.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top