elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error al compilar, error de linker: Undefined reference to...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al compilar, error de linker: Undefined reference to...  (Leído 3,316 veces)
danissj

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Error al compilar, error de linker: Undefined reference to...
« 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:
Código:
#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
Código:

#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
Código:

#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
Código:
#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
Código:
#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);
}


« Última modificación: 26 Septiembre 2018, 18:47 pm por danissj » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error al compilar, error de linker: Undefined reference to...
« Respuesta #1 en: 26 Septiembre 2018, 20:29 pm »

Y cómo lo compilas?


En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Error al compilar, error de linker: Undefined reference to...
« Respuesta #2 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.
En línea

I like to test things.
danissj

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error al compilar, error de linker: Undefined reference to...
« Respuesta #3 en: 26 Septiembre 2018, 22:42 pm »

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




En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Error al compilar, error de linker: Undefined reference to...
« Respuesta #4 en: 26 Septiembre 2018, 22:47 pm »

torneo.c es una copia de nadadores.c
En línea

danissj

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Error al compilar, error de linker: Undefined reference to...
« Respuesta #5 en: 26 Septiembre 2018, 22:56 pm »

tenes razon, muchas gracias.
« Última modificación: 27 Septiembre 2018, 00:08 am por danissj » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines