1
resposta

[Dúvida] Projeto na linguagem C

Bom dia!

Estou realizando um projeto para a faculdade de um programa em linguagem C que realiza o gerenciamento de um museu multitemático, mas estou com um problema de ficar aparecendo os erros undefined reference to 'incluirObras', undefined reference to 'alterarObra', undefined reference to 'excluirObra' e undefined reference to 'consultarObra' mesmo os arquivos sendo inseridos da maneira correta (ao meu ver), gostaria da ajuda de vocês se possível para solucionar esse problema.

gerenciamento_obras.c

gerenciamento_obras.h Insira aqui a descrição dessa imagem para ajudar na acessibilidade

obras.h Insira aqui a descrição dessa imagem para ajudar na acessibilidade

obras.c Insira aqui a descrição dessa imagem para ajudar na acessibilidade

OBS: Mandei os arquivos em fotos, pois não caberiam todos pela quantidade de caracteres.

Aqui está o link do repositório no github caso alguém queira dar uma olhada: https://github.com/joaosoup/projeto-faculdade

Abraços.

1 resposta

O problema que você está enfrentando, "undefined reference", geralmente ocorre quando o compilador não consegue encontrar a implementação de uma função que foi chamada em um arquivo-fonte, mas essa implementação não está presente no mesmo arquivo ou não foi vinculada corretamente durante a compilação.

Vamos abordar alguns pontos para verificar e corrigir esse problema:

  1. Compilação e Vinculação: Certifique-se de que todos os arquivos .c estão sendo compilados e vinculados corretamente. Parece que você tem pelo menos três arquivos: gerenciamento_obras.c, obras.c e um arquivo que contém a função main().

    Se você estiver usando um comando de compilação manual, certifique-se de incluir todos os arquivos necessários. Por exemplo:

    gcc gerenciamento_obras.c obras.c main.c -o meu_programa
    

    Certifique-se de substituir main.c pelo nome real do seu arquivo que contém a função main().

  2. Inclusão de Headers: Certifique-se de que todos os arquivos .c incluem os headers necessários. No seu caso, gerenciamento_obras.c e obras.c devem incluir "gerenciamento_obras.h" e "obras.h", respectivamente.

  3. Implementação de Funções: Verifique se a implementação das funções incluirObra, alterarObra, consultarObra e excluirObra está presente em algum lugar, ou seja, se o código dessas funções está no mesmo arquivo ou se você está incluindo corretamente o arquivo de cabeçalho onde essas funções são declaradas.

  4. Múltiplas Inclusões: Certifique-se de que os headers estão protegidos contra múltiplas inclusões usando as diretivas de pré-processador #ifndef, #define e #endif. Parece que você fez isso corretamente no seu código.

  5. Ordem de Compilação: Certifique-se de que a ordem de compilação dos arquivos fonte não está causando problemas. Por exemplo, se uma função é usada antes de ser definida, isso pode causar erros.

Tente revisar esses pontos e ajustar seu processo de compilação de acordo. Se os problemas persistirem, forneça mais informações sobre como você está compilando e vinculando seus arquivos para que eu possa ajudar mais especificamente.