Ir ao conteúdo
  • Cadastre-se
DiogoTBr

C Erro ao compilar makefile em C: Undefined reference to"

Recommended Posts

Boa noite, estou fazendo um programa para meu curso e o programa deu erro ao ser compilado. Segue aí embaixo os arquivos:

 

introcomp_main.c

#include <stdio.h>

#include "banco.h"

int main(){

    int n;

    scanf("%d", &n);

    Cliente clientes[n]; 

    for(int i = 0; i < n; i++){

        cadastraCliente(clientes, i);

    }

    float media = 0;

    for(int i = 0; i < n; i++){

        media+=saldoCliente(clientes, i);

        imprimeSaldo(clientes, i);

    }

    printf("Media dos Salarios: %.2lf\n", media/(float)n);

    return 0;

}

 

banco.h

#ifndef BANCO_H
#define BANCO_H

typedef struct {
    char nome[51];
    char cidade[51];
    int conta;
    double saldo;

}Cliente;

     void cadastraCliente(Cliente clientes[],int i);
    
    int saldoCliente(Cliente clientes[], int i);
    
    void imprimeSaldo(Cliente clientes[],int i);
    
    
#endif

 

banco.c

#include <stdio.h>
#include "banco.h"

void cadastraClientes(Cliente clientes[], int i)
{
    scanf("%d %s %*c %s %lf", &clientes[i].conta, clientes[i].nome, clientes[i].cidade, &clientes[i].saldo);
}

int saldoCliente(Cliente clientes[], int i)
{
    int media=0;
    media=clientes[i].saldo;
    return media;
}

void imprimeSaldo(Cliente clientes[], int i)
{
    {
        printf("Cliente %s mora em %s e tem R$%lf na conta %d", clientes[i].nome, clientes[i].cidade, clientes[i].saldo, clientes[i].conta);
    }
}

 

 

makefile

 

all: compila executa
compila:
    gcc -c banco.c
    gcc -c introcomp_main.c
    gcc -o introcomp_main banco.o introcomp_main.o
    
executa:
    ./introcomp_main
limpa:
    rm *.o

 

erro no terminal

 

gcc -c banco.c
gcc -c introcomp_main.c
gcc -o introcomp_main banco.o introcomp_main.o
introcomp_main.o:introcomp_main.c:(.text+0xc2): undefined reference to `cadastraCliente'
collect2.exe: error: ld returned 1 exit status
make: *** [compila] Error 1

 

Alguém poderia dar um help aí? Obs: não estudamos ponteiros ainda, então por precaução tentem fazer de tudo pra não usar..

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema parece ser que no banco.c você definiu a função com o nome cadastraClientes, com o s no final, mas no resto do código está sem s.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Era isso mesmo @isrnick, não acredito que era um erro tão bobo kkkkkk, mas valeu mesmo, noixx

52 minutos atrás, isrnick disse:

O problema parece ser que no banco.c você definiu a função com o nome cadastraClientes, com o s no final, mas no resto do código está sem s.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×