Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: AnungUnRama en 29 Mayo 2013, 08:34 am



Título: [Linker error] undefined reference to `NombreFuncion()'
Publicado por: AnungUnRama en 29 Mayo 2013, 08:34 am
Estoy haciendo una aplicación sencilla utilizando funciones. Tengo bien declaradas las funciones además de que cuando las llamo, también las llamo correctamente. El problema es que cuando trato de compilar mi código, me manda el error que puse en el asunto. Les dejo el código, muchas gracias. C++

Código:
 
#include<stdio.h>
#include<conio.h>
int flag=0,position=0,x,key[5],key1[5];
void Altas(void);
void Bajas(void);
void Consultas(void);
void Modificaciones(void);
void Reporte(void);
void Posicion(void);
void Clave(void);
void Ordenado(void);
main()
{
      char select;
      do
      {
           printf("\nSelecciona la opcion deseada\n");
           printf("1) Altas\n");
           printf("2) Bajas\n");
           printf("3) Consultas\n");
           printf("4) Modificaciones\n");
           printf("5) Reporte\n");
           printf("6) Salir\n");
           select=getchar();
           switch(select)
           {
                         case'1':Altas();
                         flag=1;
                         break;
                         case'2':
                         if(flag==1)
                         Bajas();
                         else
                         printf("No existe ningun registro\n");     
                         break;
                         case'3':
                         if(flag==1)
                         Consultas();
                         else
                         printf("No existe ningun registro\n");
                         break;
                         case'4':
                         if(flag==1)
                         Modificaciones();
                         else
                         printf("No existe ningun registro\n");
                         break;
                         case'5':
                         if(flag==1)
                         Reporte();
                         else
                         printf("No existe ningun registro\n");
                         break;                                                 
                         return(select);
           }
           select=getchar();
      }
           while(select!='6');
           getch();
}
void Altas(void)
{
     printf("Ingrese las claves");
     for(x=0;x<=5;x=x++)
     {
                        scanf("%d",&key[x]);
                        key1[x]=key[x];
                        flag=1;
     }
     getch();
}
       



Título: Re: [Linker error] undefined reference to `NombreFuncion()'
Publicado por: leosansan en 29 Mayo 2013, 09:52 am
Creo que el mensaje " undefined reference to `NombreFuncion()'" hace referencia a que dicha función no está, no existe, no la has puesto aún.

Con el "trozo" de código que has puesto a m´me sale el error:


Citar
C:\Users\Administrador\Documents\C\Nueva carpeta\Untitled23.o:Untitled23.c|| undefined reference to `Bajas'|
C:\Users\Administrador\Documents\C\Nueva carpeta\Untitled23.o:Untitled23.c|| undefined reference to `Consultas'|
C:\Users\Administrador\Documents\C\Nueva carpeta\Untitled23.o:Untitled23.c|| undefined reference to `Modificaciones'|
C:\Users\Administrador\Documents\C\Nueva carpeta\Untitled23.o:Untitled23.c|| undefined reference to `Reporte'|
........................................................


ya que no están en el código, cosa que no sucede con Altas, que sí está y no sale en el error.

Saluditos!. .... ...
(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: [Linker error] undefined reference to `NombreFuncion()'
Publicado por: pacoperico en 29 Mayo 2013, 14:03 pm
Ese tipo de error suele darse cuando intentas usar una funcion que no existe, bien sea porque escribes mal el nombre de una funcion a la hora de llamarla (C es sensible a las mayusculas), o a lo mejor porque usas una funcion de una libreria en la que no esta declarada dicha funcion. Postea todo el codigo completo y si es posible usa las etiquetas geshi.


Título: Re: [Linker error] undefined reference to `NombreFuncion()'
Publicado por: rir3760 en 29 Mayo 2013, 14:56 pm
Otros dos comentarios:

1) La función main se debe definir como "int main(void) ..." o "int main() ..." y se debe indicar su valor de retorno con (al menos) "return 0;". También se debe evitar el uso de la biblioteca conio de Borland. Mas información sobre estos dos temas en |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).

2) El tipo de la variable "select" debe ser "int" ya que ese es el tipo de retorno de la función getchar.

Un saludo