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:
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()
.
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.
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.
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.
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.