¿Los nombres destrozados de C ++ se mantienen consistentes cuando se compilan en diferentes computadoras?

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

Pregunta

En general, lo que he observado usando nm en Linux es que T Los nombres de los símbolos (que me interesan) permanecen consistentes en diferentes computadoras incluso cuando no estoy usando extern "C". ¿Es correcta mi observación?

Nota Estoy usando GCC en todas las computadoras.

¿Fue útil?

Solución

Sería muy inusual para la computadora, la hora del día o el clima para afectar el nombre de la fusil.

Lo que es más probable que cause desviaciones son las diferencias en la versión del compilador.

Pero muchas plataformas de Linux definen una ABI (interfaz binaria de aplicación) para C ++ que incluye, entre otras cosas, las reglas de name. En estas plataformas, el mismo código fuente se compilará con los mismos nombres destrozados, independientemente de los niveles de optimización, las versiones del compilador, el nombre de host, el número de serie del disco duro, la hora del día, el clima, ya sea que su equipo deportivo favorito perdió la semana pasada o cualquier factor no mencionado explícitamente en el ABI.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top