Erro Referência indefinida a uma função em C

Erro Referência indefinida a uma função em C
Vimos e resolvemos muitas exceções ao codificar em qualquer linguagem de programação. A referência indefinida é uma daquelas exceções que ocorreram principalmente no idioma C, pois o nome sugere que ocorreria quando alguma definição de função estiver ausente do script. Assim, este artigo fornecerá alguns métodos fáceis para resolver esse erro ao começar a criar. Certifique -se de fazer login no sistema Linux e abrir o terminal para começar a implementar através do método de atalho "Ctrl+Alt+T".

Nota: Já instalamos o compilador GCC em nosso sistema operacional em execução.

Exemplo 01:

Uma das causas populares para o erro de referência indefinida pode ser uma questão de nome de uma função. Então, neste exemplo, veremos como um erro pode ser gerado e resolvido usando o nome da função. Estaremos criando um novo “exp.Arquivo C ”para adicionar nosso código C a ele no terminal do shell.

$ touch exp.c

O arquivo foi criado com sucesso no diretório inicial. Para abrir este arquivo, precisamos de alguns aplicativos do editor. Portanto, estamos utilizando o editor de nano para abri -lo.

$ nano exp.c

Mantivemos nosso código C simples para fácil entendimento de nossos usuários. Incluímos um arquivo de cabeçalho no início de um código. Depois disso, uma função principal () foi definida para imprimir que estamos trabalhando no método principal agora. Os feitiços dos nomes de funções estão incorretos. Assim, ele deve exibir um erro de referência indefinido durante a compilação do código. Salvamos nosso arquivo de código e voltamos ao shell.

Verifique se você tem algum compilador C configurado em seu sistema Linux. Estamos usando o compilador GCC eterno aqui para compilar o código C acima. Após a compilação com o compilador GCC, temos a referência indefinida ao erro principal () conforme o esperado.

$ GCC Exp.c

Quando executamos o arquivo, ele diz que não existe esse arquivo ou diretório.

$ ./a.fora

Vamos corrigir o código e alterar o nome da função para main () conforme a imagem abaixo.

Assim, desta vez, quando você compila e executa o arquivo, ele funcionará perfeitamente sem nenhum erro, eu.e., referência indefinida a uma função.

$ GCC Exp.c
./a.fora

Exemplo 02:

Vamos ter outro exemplo do mesmo erro. Portanto, abra o mesmo arquivo e adicione um cabeçalho padrão de entrada e saída. Um protótipo de função para o método show () foi declarado depois disso. No final, o método principal foi definido para imprimir algum texto e chamar a função show (), que foi declarado anteriormente.

Após a compilação, recebemos o erro como uma referência indefinida para mostrar (). Isso ocorre porque o método show () só foi declarado, mas não definido no código.

$ GCC Exp.c

Para resolver este erro, atualizamos o código mais uma vez. Adicionado a definição de função do método show () após o método principal. Este método contém uma única declaração de impressão dentro dele.

Quando compilamos o arquivo, o erro foi resolvido e o código foi executado com sucesso.

$ GCC Exp.c
./a.fora

Exemplo 03:

Outro erro que a maioria dos usuários comete durante a programação não está prestando atenção à sensibilidade do caso da sintaxe da linguagem. Isso também pode causar a referência indefinida do erro. Então, vejamos este problema neste exemplo. Nós usamos o mesmo código até agora. Acabamos de usar a sintaxe de casos diferentes para nomes de funções, eu.e., mostrar e mostrar. A definição de função contém o nome de letra pequena, enquanto a chamada de função contém letras maiúsculas. Salve este código.

Usou o compilador GCC para compilar o exp.Arquivo C. O erro: referência indefinida à função show () apareceu no shell terminal, conforme previsto.

$ GCC Exp.c

Para resolver esse erro, basta abrir o arquivo e fazer o nome de uma função a mesma em sua definição e chamada de função. Então, costumávamos mostrar (), eu.e., pequenos nomes de casos para ir mais longe. Salve este código atualizado para compilá -lo.

Quando compilamos o código, finalmente, ele foi compilado com sucesso sem nenhum erro restante. Assim, a execução deste arquivo funciona bem conforme a imagem abaixo.

$ GCC Exp.c
./a.fora

Conclusão:

Neste guia, vimos como um erro simples de um usuário pode causar a referência de erro indefinida a uma função que ocorre. Para resolver este erro, implementamos métodos simples nas ilustrações para torná -las bem entendidas. Esperamos que este artigo atenda às suas necessidades no seu melhor.