46 votos

Undefined Symbol ___gxx_de la personalidad_v0 en el enlace

He estado recibiendo esta undefined symbol edificio con esta línea de comandos:

$ gcc test.cpp
Undefined symbols:
  "___gxx_personality_v0", referenced from:
  etc...

test.cpp es simple y debe construir bien. ¿Cuál es el trato?

75voto

ryan_s Puntos 3076

Uso

g++ test.cpp

en su lugar, ya que este es el código de c++.


O, si usted realmente desea utilizar gcc, agregar -lstdc++ a la línea de comandos, así:

gcc test.cpp -lstdc++

Ejecución md5 contra la a.out producido en cada escenario muestra que es la misma salida.

Pero, sí, g++ probablemente hace que su mundo de una forma más simple lugar.

4voto

whitman Puntos 2059

la extensión .cpp causa de gcc para compilar el archivo como un archivo de c++. Según esta página de la extensión importa: http://gcc.gnu.org/onlinedocs/gcc-4.4.1/gcc/Overall-Options.html#index-file-name-suffix-71 Tratar de compilar el mismo archivo pero con el .c de extensión (o, alternativamente, especificar explícitamente el lenguaje con -x c). Si ejecuta nm test.o (donde la prueba.o es el archivo de objeto resultante de la ejecución gcc -x c -c test.cpp -o test.o) se dará cuenta de que ___gxx_personality_v0 no aparece como un símbolo, mientras que si se ejecuta el mismo comando en un archivo de objeto generado con gcc -c test.cpp -o test.o el ___gxx_personality_v0 está presente.

3voto

inket Puntos 622

Sólo en caso de que alguien tiene el mismo problema que yo: La extensión de archivo debe ser un .c no .C (gcc es sensible a mayúsculas).

1voto

BadPirate Puntos 11614

Tenía el mismo problema, sino una solución diferente:

El código de C++ en la biblioteca estática vinculación, y se hace referencia por una .m archivo. El cambio de nombre de la .m archivo .mm solucionado el problema.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X