Erro símbolo externo não resolvido C ++

Erro símbolo externo não resolvido C ++
Uma variedade de erros pode ocorrer no código durante a compilação de qualquer linguagem de programação como C++. Há um erro de símbolo externo não resolvido de muitos desses erros em C ++ até agora. Pode ocorrer dentro do seu código durante a compilação quando você perde alguma definição de função, falta alguma biblioteca para o uso de definições, alguma variável externa foi definida no código ou algum arquivo inflexível foi incluído no código. Por outro lado, o erro de símbolo externo não resolvido é uma referência indefinida ao "símbolo" no sistema Ubuntu. Então, veremos como isso pode ser encontrado e como resolvê -lo no Ubuntu 20.04. Vamos começar com a criação simples de arquivo C ++ através da consulta Touch e abri -la no editor do Ubuntu, eu.e., Nano. Ambas as instruções foram exibidas abaixo.
$ Touch Erro.cc
$ nano erro.cc

Exemplo 01:

Nosso primeiro exemplo é elaborar o “erro: símbolo externo não resolvido” em c++. Então, estamos abrindo o arquivo recém -criado no editor do GNU Nano para adicionar código a ele. Portanto, o código de exemplo foi iniciado ao inicializar uma biblioteca de cabeçalho "iostream" para tornar nosso código executável. O espaço para nome "STD" é usado para usar as instruções padrão do código. Declaramos que a função definida pelo usuário mostra () após o espaço para nome, e o método principal () tem chamado a função mostra () dentro de sua implementação. O código do programa não contém nenhuma definição de função do método show () no código; Isso causará um erro “símbolo externo não resolvido.”Vamos salvar e executar nosso código recém -fabricado.

#incluir
usando namespace std;
int show ();
int main ()
mostrar();

O compilador G ++ estará aqui para compilar o arquivo de código C ++. A compilação retorna o erro “Referência indefinida ao método 'show ()', que é o mesmo que um símbolo externo não resolvido no Ubuntu 20.04 Sistema. Este código não funcionará até que o erro seja resolvido.

$ G ++ Erro.cc

Como resultado, o arquivo não pode ser executado.

$ ./a.fora

Para evitar esse erro, precisamos adicionar a definição da função show () após a função principal (). Então, definimos o método show () no código que contém uma única declaração de cout nele. Agora, após a chamada do método main (), ele será executado com sucesso.

#incluir
usando namespace std;
int show ();
int main ()
mostrar();

int show ()
cout <

Depois de compilar o código atualizado, o erro foi resolvido.

$ G ++ Erro.cc

Na execução, ele executou o método show () como a saída demonstra.

$ ./a.fora

Exemplo 02:

Vamos dar uma olhada em outro exemplo para ver o "erro: símbolo externo não resolvido" no código C ++. Então, adicionamos a biblioteca do cabeçalho iostream e o espaço para nome padrão nas duas primeiras linhas. A declaração do método pass () e a definição de função "show ()" está aqui. Dentro da função "show ()", o método pass () é chamado. Dentro da função main (), a função show () é chamada. Como a função pass () não contém nenhuma definição no código, ela gerará um erro "símbolo externo não resolvido" ou "referência indefinida para mostrar" no shell.

#incluir
usando namespace std;
vazio de passagem ();
void show ()
passar();

int main ()
mostrar();

Recebemos o erro “Referência indefinida a 'pass ()' na compilação. Na execução, é incapaz de executar o arquivo até agora.

$ G ++ Erro.cc
$ ./a.fora

Para resolver esse erro, basta adicionar a definição de função pass () no código após o método main (), conforme demonstrado na foto em anexo abaixo. A função pass () contém 1 declaração de cout.

#incluir
usando namespace std;
vazio de passagem ();
void show ()
passar();

int main ()
mostrar();

void pass ()
cout<<"RUnning Pass function… "<

Desta vez, nenhum erro foi encontrado na compilação, e o arquivo de código foi executado com sucesso, eu.e., executando o método pass ().

$ G ++ Erro.cc
$ ./a.fora

Exemplo 03:

Vamos dar uma olhada em um exemplo diferente. Então, começamos o código com o mesmo cabeçalho e namespace. Antes da função principal (), declaramos uma variável de string "s" e usamos a palavra -chave "extern" para declará -la como uma variável externa. Dentro do método main (), estamos inicializando com algum valor de string "Linux" usando o método de atribuição. A declaração cout é utilizada aqui para mostrar a variável de string. Isso causará um erro porque a string é externa e não pode ser inicializada na função principal ().

#incluir
usando namespace std;
string extern s;
int main ()
s = "Linux";
cout<

Temos a mesma referência indefinida ao erro 's' no shell na compilação deste código.

$ G ++ Erro.cc
$ ./a.fora

Para resolver esse problema, temos que declarar e inicializar a função da String variável na função principal () sem usar a palavra “extern.”Conforme o código abaixo, você pode ver que declaramos e inicializamos a String 'S' dentro da função principal (), e o cout é usado para exibi -lo.

#incluir
usando namespace std;
int main ()
String S = "Linux";
cout<

Após a compilação de código atualizada, o erro é resolvido. Após a execução, o valor da sequência foi exibido no shell como abaixo.

$ G ++ Erro.cc
$ ./a.fora

Conclusão:

Em C ++, temos uma explicação simples para criar e resolver o erro "símbolo externo não resolvido" ou "referência indefinida ao símbolo.”Criamos exemplos simples para demonstrá -lo no Ubuntu 20.04 Sistema. Você pode fazer uso de todos os exemplos em qualquer outra plataforma também. Estamos extremamente esperançosos para sua resposta gentil.