Errore Simbolo esterno irrisolto C ++

Errore Simbolo esterno irrisolto C ++
Una varietà di errori può verificarsi nel codice durante la compilazione in qualsiasi linguaggio di programmazione come C++. Finora c'è un errore di simbolo esterno irrisolto da molti di questi errori in C ++. Può verificarsi all'interno del codice mentre la compilation quando si perde alcune definizioni di funzione, mancano alcune librerie per l'uso delle definizioni, alcune variabili esterne sono state definite nel codice o alcuni file infondati sono stati inclusi nel codice. D'altra parte, l'errore di simbolo esterno irrisolto è un riferimento indefinito al "simbolo" all'interno del sistema Ubuntu. Quindi, vedremo come può essere trovato e come risolverlo in Ubuntu 20.04. Iniziamo con la semplice creazione di file C ++ tramite la query touch e l'apertura all'interno dell'editor di Ubuntu, i.e., nano. Entrambe le istruzioni sono state visualizzate di seguito.
Errore $ touch.cc
$ nano errore.cc

Esempio 01:

Il nostro primo esempio è quello di elaborare il "Errore: simbolo esterno irrisolto" in C++. Quindi, abbiamo aperto il file appena creato sull'editor GNU Nano per aggiungere codice ad esso. Quindi, il codice di esempio è stato avviato inizializzando una libreria di intestazione "iostream" per rendere eseguibile il nostro codice. Lo spazio dei nomi "STD" viene utilizzato per utilizzare le istruzioni standard del codice. Abbiamo dichiarato la funzione di funzione definita dall'utente () dopo lo spazio dei nomi e il metodo principale () ha chiamato la funzione show () all'interno della sua implementazione. Il codice del programma non contiene alcuna definizione di funzione del metodo show () nel codice; causerà un errore "simbolo esterno irrisolto."Salviamo ed eseguiamo il nostro codice appena fatto.

#includere
Utilizzo dello spazio dei nomi std;
int show ();
int main ()
spettacolo();

Il compilatore G ++ sarà qui per compilare il file di codice C ++. La compilation restituisce l'errore "riferimento indefinito al metodo" show () ", che è lo stesso di un simbolo esterno irrisolto in Ubuntu 20.04 Sistema. Questo codice non funzionerà fino a quando l'errore non viene risolto.

Errore $ G ++.cc

Di conseguenza, il file non può essere eseguito.

$ ./UN.fuori

Per evitare questo errore, dobbiamo aggiungere la definizione della funzione show () dopo la funzione principale (). Quindi, abbiamo definito il metodo show () nel codice contenente una singola istruzione cout in esso. Ora, dopo la chiamata dal metodo principale (), verrà eseguito correttamente.

#includere
Utilizzo dello spazio dei nomi std;
int show ();
int main ()
spettacolo();

int show ()
cout <

Dopo aver compilato il codice aggiornato, l'errore è stato risolto.

Errore $ G ++.cc

Durante l'esecuzione, ha eseguito il metodo show () come dimostra l'output.

$ ./UN.fuori

Esempio 02:

Diamo un'occhiata a un altro esempio per vedere "Errore: simbolo esterno irrisolto" nel codice C ++. Quindi, abbiamo aggiunto la libreria di intestazione iostream e lo spazio dei nomi standard alle prime due righe. La Dichiarazione del metodo Pass () e la funzione "show ()" è qui. All'interno della funzione "show ()", viene chiamato il metodo Pass (). All'interno della funzione principale (), la funzione show () si chiama. Poiché la funzione Pass () non contiene alcuna definizione nel codice, genererà un errore "simbolo esterno irrisolto" o "riferimento indefinito per mostrare" sulla shell.

#includere
Utilizzo dello spazio dei nomi std;
void Pass ();
void show ()
passaggio();

int main ()
spettacolo();

Abbiamo ricevuto l'errore "riferimento indefinito a" pass () "sulla compilation. Durante l'esecuzione, non è in grado di eseguire il file finora.

Errore $ G ++.cc
$ ./UN.fuori

Per risolvere questo errore, è sufficiente aggiungere la definizione della funzione pass () nel codice dopo il metodo principale () come dimostrato nella foto allegata sotto. La funzione Pass () contiene 1 istruzione cout.

#includere
Utilizzo dello spazio dei nomi std;
void Pass ();
void show ()
passaggio();

int main ()
spettacolo();

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

Questa volta, non sono stati trovati errori nella compilazione e il file di codice è stato eseguito correttamente, i.e., Esecuzione del metodo Pass ().

Errore $ G ++.cc
$ ./UN.fuori

Esempio 03:

Diamo un'occhiata a un esempio diverso. Quindi, abbiamo avviato il codice con la stessa intestazione e spazio dei nomi. Prima della funzione principale (), abbiamo dichiarato una variabile stringa "S" e abbiamo usato la parola chiave "esterna" per dichiararla come una variabile esterna. All'interno del metodo principale (), lo abbiamo inizializzato con un valore di stringa "Linux" usando il metodo di assegnazione. L'istruzione Cout viene utilizzata qui per mostrare la variabile di stringa. Causerà un errore perché la stringa è esterna e non può essere inizializzata all'interno della funzione principale ().

#includere
Utilizzo dello spazio dei nomi std;
stringhe esterne s;
int main ()
S = "Linux";
cout<

Abbiamo ottenuto lo stesso riferimento indefinito all'errore "s" nella shell sulla compilazione di questo codice.

Errore $ G ++.cc
$ ./UN.fuori

Per risolvere questo problema, dobbiamo dichiarare e inizializzare la funzione di stringa variabile all'interno della funzione principale () senza usare la parola "esterno."Secondo il codice seguente, puoi vedere che abbiamo dichiarato e inizializzato String 'S' all'interno della funzione principale () e Cout viene utilizzato per visualizzarlo.

#includere
Utilizzo dello spazio dei nomi std;
int main ()
String S = "Linux";
cout<

Alla compilazione del codice aggiornato, l'errore viene risolto. Dopo l'esecuzione, il valore di "String" è stato visualizzato sulla shell come di seguito.

Errore $ G ++.cc
$ ./UN.fuori

Conclusione:

In C ++, abbiamo una semplice spiegazione per creare e risolvere l'errore "simbolo esterno irrisolto" o "riferimento indefinito al simbolo."Abbiamo creato semplici esempi per dimostrarlo all'interno di Ubuntu 20.04 Sistema. Puoi utilizzare tutti gli esempi su qualsiasi altra piattaforma. Siamo estremamente fiduciosi per la tua gentile risposta.