$ 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.