Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: danissj en 26 Septiembre 2018, 18:13 PM

Título: Error al compilar, error de linker: Undefined reference to...
Publicado por: danissj en 26 Septiembre 2018, 18:13 PM
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);
}
Título: Re: Error al compilar, error de linker: Undefined reference to...
Publicado por: MAFUS en 26 Septiembre 2018, 20:29 PM
Y cómo lo compilas?
Título: Re: Error al compilar, error de linker: Undefined reference to...
Publicado por: OmarHack en 26 Septiembre 2018, 21:28 PM
Tienes que compilar todos los archivos. No solo el main. Crea un proyecto, mete todos los archivos y dale a compilar.
Título: Re: Error al compilar, error de linker: Undefined reference to...
Publicado por: danissj en 26 Septiembre 2018, 22:42 PM
Mi proyecto esta guardado todo en un mismo archivo aun asi no me compila..

(https://i.imgur.com/Ot9bNBb.png)


(https://i.imgur.com/Ebw9siO.png)
Título: Re: Error al compilar, error de linker: Undefined reference to...
Publicado por: MAFUS en 26 Septiembre 2018, 22:47 PM
torneo.c es una copia de nadadores.c
Título: Re: Error al compilar, error de linker: Undefined reference to...
Publicado por: danissj en 26 Septiembre 2018, 22:56 PM
tenes razon, muchas gracias.