Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2010, 05:03
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
referencia indefinida al compilar

Hola, cuando compilo un programa con varios archivos individuales me da fallo en el main:
El error es este: ciclistas_main.c:(.text+0x127): undefined reference to `actualizar_tiempos'
collect2: ld devolvió el estado de salida 1

Código C:
Ver original
  1. #include "ciclistas.h"
  2.  
  3. int main(){
  4.          void crear_fich();
  5.          void actualizar_tiempos(FILE *);
  6.          void clasif_por_equipos(FILE *);
  7.          void ordenar_por_tiempo(FILE *);
  8.      void listar_por_tiempo(FILE *);
  9.      void listar_por_tiempo_y_equipos(FILE *);
  10.      int baja(FILE *);
  11.      void media_total(FILE *);
  12.          void listar_por_la_media_de_tiempo_cada_equipo(FILE *);
  13.  
  14.          FILE * pf; /* Puntero al fichero */
  15.          char op;
  16.        
  17.         if((pf = fopen("tour_france.dat", "rb+")) == NULL) {/* Abre el fichero para trabajar con él en Lectura / Escritura */
  18.            crear_fich();/* Si no existe, ejecuta el módulo que lo cree */
  19.        
  20.            if((pf = fopen("tour_france.dat", "rb+")) == NULL) {/* Una vez creado lo habre en lectura/escritura */
  21.         perror("Fichero no accesible");
  22.                 exit(1);
  23.        }
  24.         }
  25.        
  26.         do {
  27.             printf("Elija opción:\na--> Crear el fichero del Tour\nb--> Actualizar tiempo\nc--> Clasificación por equipos\n");
  28.         printf("d--> Ordenar el fichero por tiempos\ne--> Listar por tiempos\nf--> Listar por tiempos y equipos\ng--> Dar de baja dorsales\n");
  29.             printf("h--> Media total de los equipos\ni--> Media de cada equipo\nj--> Salir\n");
  30.    
  31.             do{
  32.                LEE_CAR(op);
  33.             }while((op < 'a') || (op > 'j'));
  34.        
  35.         switch(op) {
  36.             case 'a': { crear_fich(pf);
  37.                    
  38.                     if((pf = fopen("tour_france.dat", "rb+")) == NULL) {/* Una vez creado lo habre en lectura/escritura */
  39.                     perror("Fichero no accesible");
  40.                             exit(2);
  41.                     }
  42.                     break; }
  43.                         case 'b': { actualizar_tiempos(pf); break; }
  44.                         case 'c': { clasif_por_equipos(pf); break; }
  45.                         case 'd': { ordenar_por_tiempo(pf); break; }
  46.             case 'e': { listar_por_tiempo(pf); break; }
  47.             case 'f': { listar_por_tiempo_y_equipos(pf); break; }
  48.             case 'g': { if(baja(pf) == 0) {
  49.                     /* El borrado ha sido correcto y abre el fichero */
  50.                     if((pf = fopen("tour_france.dat", "rb+")) == NULL) {
  51.                         perror("Fichero no accesible");
  52.                                 exit(3);
  53.                         }
  54.                      }
  55.                      else {
  56.                         printf("Error al eliminar un corredor, el fichero no se ha modificado, compruebe sus datos\n");
  57.                      }
  58.                      break; }
  59.  
  60.                 case 'h': { media_total(pf); break; }
  61.                         case 'i':{listar_por_la_media_de_tiempo_cada_equipo(pf) ;break;}
  62.                 } /* switch */
  63.     }while (op!= 'j');
  64.         if(fclose(pf) == EOF)
  65.         printf("Error al cerrar el fichero, compruebe si ha perdido información\n");
  66.         exit(0);
  67. } /* main() */

A ver si alguien me puede ayudar a encontrar el fallo. Gracias.