Feil uløst eksternt symbol C ++

Feil uløst eksternt symbol C ++
En rekke feil kan oppstå i koden mens du sammenstiller et hvilket som helst programmeringsspråk som C++. Det er en uavklart ekstern symbolfeil fra mange av disse feilene i C ++ så langt. Det kan forekomme i koden din mens sammenstilling når du savner en funksjonsdefinisjon, noe bibliotek mangler for bruk av definisjoner, noe ekstern variabel har blitt definert i koden, eller en eller annen grunnfil er inkludert i koden. På den annen side er den uavklarte eksterne symbolfeilen en udefinert referanse til "symbol" i Ubuntu -systemet. Så vi får se hvordan det kan bli funnet og hvordan du kan løse det i Ubuntu 20.04. La oss komme i gang med den enkle C ++ -filopprettelsen via Touch -spørringen og åpne den i Ubuntus redaktør, I.e., Nano. Begge instruksjonene er vist nedenfor.
$ berøringsfeil.CC
$ Nano -feil.CC

Eksempel 01:

Vårt første eksempel er å utdype “Feil: uavklart eksternt symbol” i C++. Så vi har åpnet den nettopp opprettede filen på GNU Nano Editor for å legge til kode til den. Så eksemplekoden har blitt startet ved å initialisere et "iostream" headerbibliotek for å gjøre koden vår kjørbar. "STD" navneområdet brukes til å bruke kodens standarduttalelser. Vi har erklært den brukerdefinerte funksjonsshowet () etter navneområdet, og Main () -metoden har ringt funksjonshowet () innen implementeringen. Programkoden inneholder ikke noen funksjonsdefinisjon av Show () -metoden i koden; det vil forårsake en feil “uavklart eksternt symbol.”La oss lagre og utføre vår nyopplagte kode.

#inkludere
ved hjelp av navneområdet STD;
int show ();
int main ()
forestilling();

G ++ -kompilatoren vil være her for å kompilere C ++ -kodefilen. Samlingen returnerer feilen "Udefinert referanse til" show () "-metode, som er den samme som et uløst eksternt symbol i Ubuntu 20.04 System. Denne koden fungerer ikke før feilen er løst.

$ g ++ feil.CC

Som et resultat kan ikke filen utføres.

$ ./en.ute

For å unngå denne feilen, må vi legge til definisjonen av show () -funksjonen etter main () -funksjonen. Så vi har definert Show () -metoden i koden som inneholder en enkelt cout -uttalelse i den. Nå, etter samtalen fra Main () -metoden, vil den bli utført med hell.

#inkludere
ved hjelp av navneområdet STD;
int show ();
int main ()
forestilling();

int show ()
cout <

Etter å ha samlet den oppdaterte koden, ble feilen løst.

$ g ++ feil.CC

Ved utførelse har den utført Show () -metoden som utdataene viser.

$ ./en.ute

Eksempel 02:

La oss ta en titt på et annet eksempel for å se “Feil: Uløst eksternt symbol” i C ++ -kode. Så vi har lagt til iostream headerbiblioteket og standard navneområdet på de to første linjene. Pass () metode erklæring, og "show ()" -funksjonsdefinisjon er her. Innenfor "show ()" -funksjonen kalles pass () metode. Innenfor main () -funksjonen kalles showet () funksjonen. Siden pass () -funksjonen ikke inneholder noen definisjon i koden, vil den generere en feil "uavklart eksternt symbol" eller "udefinert referanse for å vise" på skallet.

#inkludere
ved hjelp av navneområdet STD;
void pass ();
void show ()
sende();

int main ()
forestilling();

Vi har fått feilen "udefinert referanse til" pass () "på samlingen. Ved utførelse er det ikke i stand til å utføre filen så langt.

$ g ++ feil.CC
$ ./en.ute

For å løse denne feilen, kan du bare legge til funksjonspasset () Definisjonen i koden etter Main () -metoden som demonstrert på det vedlagte bildet nedenfor. Pass () -funksjonen inneholder 1 cout -uttalelse.

#inkludere
ved hjelp av navneområdet STD;
void pass ();
void show ()
sende();

int main ()
forestilling();

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

Denne gangen er det ikke funnet noen feil i samlingen, og kodefilen er utført med hell, i.e., utføre pass () -metoden.

$ g ++ feil.CC
$ ./en.ute

Eksempel 03:

La oss se på et annet eksempel. Så vi har startet koden med samme overskrift og navneområde. Før hovedfunksjonen () har vi erklært en strengvariabel “S” og brukt nøkkelordet “ekstern” for å erklære det som en ekstern variabel. Innenfor Main () -metoden har vi initialisert den med noen strengverdi “Linux” ved hjelp av tildelingsmetoden. COUT -setningen brukes her for å vise strengvariabelen. Det vil forårsake en feil fordi strengen er ekstern og ikke kan initialiseres i hovedfunksjonen ().

#inkludere
ved hjelp av navneområdet STD;
ekstern streng s;
int main ()
S = "Linux";
cout<

Vi har fått den samme udefinerte referansen til 'S' feil i skallet på samlingen av denne koden.

$ g ++ feil.CC
$ ./en.ute

For å løse dette problemet, må vi erklære og initialisere variabelstrengen 'inne i hoved () -funksjonen uten å bruke ordet “ekstern.”I henhold til koden nedenfor, kan du se at vi har erklært og initialisert streng 'innen hoved () -funksjonen, og Cout brukes til å vise den.

#inkludere
ved hjelp av navneområdet STD;
int main ()
Streng S = "Linux";
cout<

Ved den oppdaterte kodesamlingen løses feilen. Etter utførelsen er strengens 'verdi blitt vist på skallet som nedenfor.

$ g ++ feil.CC
$ ./en.ute

Konklusjon:

I C ++ har vi en enkel forklaring på å opprette og løse feilen "uavklart eksternt symbol" eller "udefinert referanse til symbolet.”Vi har laget enkle eksempler for å demonstrere det i Ubuntu 20.04 System. Du kan benytte deg av alle eksemplene på en hvilken som helst annen plattform også. Vi er ekstremt håpefulle for ditt snille svar.