Foros del Web » Programación para mayores de 30 ;) » Programación General »

error referencia indefinida (C++)

Estas en el tema de error referencia indefinida (C++) en el foro de Programación General en Foros del Web. Hola a todos estoy haciendo un programa para averiguar puntos críticos de una red, usando grafos, Colas, y Lista. tendremos una función que nos encuentre ...
  #1 (permalink)  
Antiguo 03/06/2005, 23:16
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
error referencia indefinida (C++)

Hola a todos

estoy haciendo un programa para averiguar puntos críticos de una red, usando grafos, Colas, y Lista. tendremos una función que nos encuentre esos puntos.

el caso es que cuando estoy haciendo uso del método Insertar lista en la fución, me da error que dice: undefined reference ti 'Lista::Insertar(Planeta)
Planeta es un tipo de datos ya defenido en la clase lista.

me podría alguien decirme por favor, cuando se da ese tipo de errores?
otra cosa, hay alguna referencia que explique cada tipo de error y los posibles casos que lo producen?

si os sirve, uso el dev-C++ como compilador.

gracias.
  #2 (permalink)  
Antiguo 04/06/2005, 01:51
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
¿Es Insertar un metodo estatico?
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 04/06/2005, 03:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
Insertar es un método publico de la clase Lista, con una entrada de tipo Plantea, que es definida como una estructura de datos
lo que hago es algo parecido a esto: miLista.Insertar(MiPlaneta)
esto lo hago dentro de un método de la clase Grafo.

no sé qué es lo que hago mal, es que no entiendo a qué se refiere como eso de referencia indefinida.

gracias.
  #4 (permalink)  
Antiguo 04/06/2005, 03:22
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Entonces no lo podes llamar asi desde la clase, lo tenes que llamar desde un objeto.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 04/06/2005, 04:32
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
Si, tengo declarado el objeto:Lista miLista; y luego uso el método para ese objeto.
  #6 (permalink)  
Antiguo 04/06/2005, 04:46
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Entonces no se, tal vez esten en diferentes archivos .cpp y al generarse el codigo objeto no los estes enlazando.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 04/06/2005, 04:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
Pues si, las dos clases están en diferentes archivos Grafo.cpp y Lista.cpp, será eso.
entonces si es ese el error, como haría para solucionarlo? tienes alguna idea?

agradezco mucho tu ayuda.
  #8 (permalink)  
Antiguo 04/06/2005, 04:58
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
El punto seria saber si el error es del compilador o del enlazador, si es de este ultimo tenes que especificarle que enlaze tanto grafo.obj como lista.obj.
Si es del compilador con esos datos no sabria decirte cual es el problema pero podes intentar compilar sin enlazar los dos archivos cpp para ver en cual da el error.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 04/06/2005, 05:15
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
lo acabo de compilar, y dice esto: [linker error] undefined reference to Lista::Insertar(Planeta). esto quiere decir que error de enlazazdor, verdad?
como hago esto lo que me dices?

siento molestarte tanto, pero es que llevo toda la noche intentanto averiguar cual es el error, pero lo que pasa es que no entiendo que quieren decir algunos mensajes.

muchas gracias, de verdad
  #10 (permalink)  
Antiguo 04/06/2005, 05:25
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si, efectivamente, es el enlazador (linker) el que da el error. Dev-C++ usa gcc, intenta ejecutar desde la linea de comandos un gcc grafo.cpp lista.cpp si te da el mismo error sera un problema del codigo.

Aca tenes informacion sobre gcc: http://gcc.gnu.org/onlinedocs/gcc/Invoking-GCC.html
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #11 (permalink)  
Antiguo 04/06/2005, 05:43
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
bueno, seguro que hay algún error en mi código, porque los demás proyectos que hice funcionan se compilan y enlazan bien, y las clases que estoy usando ahora, ya estaban funcionando, lo único que hice era cambiar el tipo de variable de trabajo, y usarlas en mi clase Grafo, la que estoy intentando hacer.

si puede ser, podría enviarte el codigo y le hechas un vistazo. ¿puedo?

gracias
  #12 (permalink)  
Antiguo 04/06/2005, 05:45
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si, no hay problema, te mando mi mail en un mensaje.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #13 (permalink)  
Antiguo 04/06/2005, 06:06
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 20 años, 5 meses
Puntos: 1
ya te los he enviado, a ver cual es el error . jejeje

muchas gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:39.