2011-03-20 7 views
6

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

Nota Estoy usando gcc en todas las computadoras.

+1

¿Qué son * 'T' symbol names *? –

+0

@ Space_C0wb0y: ["T" El símbolo está en la sección de texto (código).] (Http://unixhelp.ed.ac.uk/CGI/man-cgi?nm) –

+0

@ Space_C0wb0y: Compruebe 'man nm' – MrD

Respuesta

9

Sería muy inusual que la computadora, la hora del día o el clima afectaran el cambio de nombre.

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

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

+0

Gracias! Eso lo explica – MrD

Cuestiones relacionadas