[Linker error] undefined reference to `NombreFuncion()'

Iniciado por AnungUnRama, 29 Mayo 2013, 08:34 AM

0 Miembros y 1 Visitante están viendo este tema.

AnungUnRama

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++


#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();
}
       



leosansan

#1
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:


CitarC:\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!. .... ...

pacoperico

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.

rir3760

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|.

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language