Error al compilar, error de linker: Undefined reference to...

Iniciado por danissj, 26 Septiembre 2018, 18:13 PM

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

danissj

Al querer compilar en el main, me tira siguiente error:
-undefined reference to "CrearTorneo"
-undefined reference to AgregarNadador
-undefined reference ...

error: ld returned 1 exit status.

Son codigos de un compañero que copie y pegue en un nuevo archivo mio, y a mi solo no me esta funcionando. alguna solucion?

MAIN:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "nadadores.h"
#include "torneo.h"

int main()
{
   torneo t = CrearTorneo();
   AgregarNadador(t);
   MostrarNadadores(t);
   AgregarNadador(t);
   system("CLS");
   MostrarNadadores(t);
   
   return 0;
}



nadadores.h


#ifndef NADADORES_H_INCLUDED
#define NADADORES_H_INCLUDED

struct EstructuraNadadores;
typedef struct EstructuraNadadores *nadador;
nadador CrearNadador();
void MostrarNadador(nadador n);


#endif // NADADORES_H_INCLUDED


torneo.h


#ifndef TORNEO_H_INCLUDED
#define TORNEO_H_INCLUDED

struct EstructuraTorneo;
typedef struct EstructuraTorneo *torneo;
torneo CrearTorneo();
torneo AgregarNadador(torneo t);
void MostrarNadadores(torneo t);


#endif // TORNEO_H_INCLUDED


nadadores.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "nadadores.h"
#include "torneo.h"

struct EstructuraNadadores
{
   char nombre[20];
   char apellido[20];
   int numeroDeAtleta;
   float peso;
   int ranking;
   int mejorTiempo20m;
   int mejorTiempo50m;
};


nadador CrearNadador()
{
   struct EstructuraNadadores*n = malloc(sizeof(struct EstructuraNadadores));
   char a[20];
   char b[20];
   fflush(stdin);
   printf("Nombre: ");
   gets(a);
   strcpy(n->nombre,a);
   fflush(stdin);
   printf("Apellido: ");
   gets(b);
   strcpy(n->apellido,b);
   fflush(stdin);
   printf("peso: ");
   scanf("%f", &n->peso);
   fflush(stdin);
   printf("Numero de Atleta: ");
   scanf("%d", &n->numeroDeAtleta);
   fflush(stdin);
   printf("Ranking: ");
   scanf("%d", &n->ranking);
   fflush(stdin);
   printf("Mejor tiempo en 20 metros: ");
   scanf("%d", &n->mejorTiempo20m);
   fflush(stdin);
   printf("Mejor tiempo en 50 metros: ");
   scanf("%d", &n->mejorTiempo50m);

   printf("\n\n");

   return n;
}

void MostrarNadador(nadador n)
{
   printf("Nombre: %s\nApellido: %s\nNumero de atleta: %d\nPeso: %f\nRanking: %d\nMejor tiempo en 20 metros: %d\nMejor tiempo en 50 metros: %d\n", n->nombre, n->apellido, n->numeroDeAtleta, n->peso, n->ranking, n->mejorTiempo20m, n->mejorTiempo50m);
}

torneo.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "nadadores.h"
#include "torneo.h"

struct EstructuraNadadores
{
   char nombre[20];
   char apellido[20];
   int numeroDeAtleta;
   float peso;
   int ranking;
   int mejorTiempo20m;
   int mejorTiempo50m;
};


nadador CrearNadador()
{
   struct EstructuraNadadores*n = malloc(sizeof(struct EstructuraNadadores));
   char a[20];
   char b[20];
   fflush(stdin);
   printf("Nombre: ");
   gets(a);
   strcpy(n->nombre,a);
   fflush(stdin);
   printf("Apellido: ");
   gets(b);
   strcpy(n->apellido,b);
   fflush(stdin);
   printf("peso: ");
   scanf("%f", &n->peso);
   fflush(stdin);
   printf("Numero de Atleta: ");
   scanf("%d", &n->numeroDeAtleta);
   fflush(stdin);
   printf("Ranking: ");
   scanf("%d", &n->ranking);
   fflush(stdin);
   printf("Mejor tiempo en 20 metros: ");
   scanf("%d", &n->mejorTiempo20m);
   fflush(stdin);
   printf("Mejor tiempo en 50 metros: ");
   scanf("%d", &n->mejorTiempo50m);

   printf("\n\n");

   return n;
}

void MostrarNadador(nadador n)
{
   printf("Nombre: %s\nApellido: %s\nNumero de atleta: %d\nPeso: %f\nRanking: %d\nMejor tiempo en 20 metros: %d\nMejor tiempo en 50 metros: %d\n", n->nombre, n->apellido, n->numeroDeAtleta, n->peso, n->ranking, n->mejorTiempo20m, n->mejorTiempo50m);
}

MAFUS


OmarHack

Tienes que compilar todos los archivos. No solo el main. Crea un proyecto, mete todos los archivos y dale a compilar.
I like to test things.

danissj

Mi proyecto esta guardado todo en un mismo archivo aun asi no me compila..





MAFUS


danissj

#5
tenes razon, muchas gracias.