Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro de "[Linker error] undefined reference to"


MRMB

Pergunta

Pessoal,

Estou com problema para compilar utilizando Dev-C++ 4.9.9.2. Criei um arquivo "Data.h", onde declarei a estrutura e os protótipos das funções. Depois criei outro arquivo "Data.c", onde consta as implementações das funções definidas no cabeçalho("Data.h"). Em um terceiro arquivo, "testedata.c" estou realizando um include do "Data.h" para utilizar as funções. Os três arquivos estão na mesma pasta. Contudo ao compilar o "testedata.c" esta ocorrendo os erros abaixo:

[Linker error] undefined reference to `Inicia'

[Linker error] undefined reference to `Imprime'

[Linker error] undefined reference to `Altera'

[Linker error] undefined reference to `Imprime'

[Linker error] undefined reference to `Altera'

[Linker error] undefined reference to `Imprime'

[Linker error] undefined reference to `Imprime'

ld returned 1 exit status

Alguém teria alguma idéia do que esta acontecendo? Abaixo código fonte dos três arquivos. Desde já agradeço quem poder colaborar.

Arquivo(Módulo) Data.h

typedef int BOOL;

#define FALSE 0
#define TRUE 1

#define ANO_MIN_DEF 0
#define ANO_MAX_DEF 9999

struct _Data 
{
    char  m_cDia;
    char  m_cMes;
    short m_shAno;
    
    short m_shAnoMin, m_shAnoMax;
    int   m_iDiaCorrido;
    BOOL  m_bOK;
};

typedef struct _Data Data;
  
Data Inicia(Data dtParam);

Data Altera(Data dtParam, char cDia, char cMes, short shAno);

void Imprime(Data dtParam);
Arquivo(Módulo) Data.c
#include <stdio.h>
#include "data.h"

Data Inicia(Data dtParam)
{
    dtParam.m_shAnoMin = ANO_MIN_DEF;
    dtParam.m_shAnoMax = ANO_MAX_DEF;
    dtParam.m_bOK = FALSE;
    
    return dtParam;
}

Data Altera(Data dtParam, char cDia, char cMes, short shAno)
{
    dtParam.m_cDia  = cDia;
    dtParam.m_cMes  = cMes;
    dtParam.m_shAno = shAno;
    
    if (dtParam.m_shAno >= dtParam.m_shAnoMin &&
        dtParam.m_shAno <= dtParam.m_shAnoMax &&
        dtParam.m_cMes >= 1 && dtParam.m_cMes <= 12 &&
        dtParam.m_cDia >= 1 && dtParam.m_cDia <= 31)
    {
        dtParam.m_bOK = TRUE;
    }
    else
    {
        dtParam.m_bOK = FALSE;
    }
    
    return dtParam;
}

void Imprime(Data dtParam)
{
     if (dtParam.m_bOK)
     {
         printf("%02d/%02d/%04d\n", dtParam.m_cDia, dtParam.m_cMes, dtParam.m_shAno);
     }
     else
     {
         printf("??:??:????\n");
     }
}
Arquivo(Módulo) testedata.c
#include <stdio.h>
#include "data.h"

int main()
{
    Data dtHoje;
    Data dtPagamento;
    
    dtHoje = Inicia(dtHoje);
    Imprime(dtHoje);
    
    dtHoje = Altera(dtHoje, 1, 12, 2001);
    Imprime(dtHoje);
    
    dtHoje = Altera(dtHoje, 1, 13, 2001);
    Imprime(dtHoje);
    
    dtPagamento.m_cDia = 55;
    Imprime(dtPagamento);
    
    return 0;
}

Editado por Crispim
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pessoal,

consegui ajustar o problema com ajuda de um amigo. Para resolver o problema criei um projeto em branco no Dev-C++ e adicionei os fontes. Assim consegui compilar com sucesso. Parece que problema ocorre devido a não encontrar "data.c" com referencia a libs. Assim estando em um projeto esse problema não ocorre.

T+ Abraço.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...