Fehler ungelöster externes Symbol C ++

Fehler ungelöster externes Symbol C ++
Eine Vielzahl von Fehlern kann im Code beim Kompilieren zu jeder Programmiersprache wie C auftreten++. Es gibt einen ungelösten externen Symbolfehler von vielen dieser Fehler in C ++ bisher. Es kann in Ihrem Code während der Kompilierung auftreten, wenn Sie eine Funktionsdefinition verpassen, eine Bibliothek für die Verwendung von Definitionen fehlt, eine externe Variable wurde im Code definiert, oder eine unlösende Datei wurde im Code enthalten. Andererseits ist der ungelöste externe Symbolfehler ein undefinierter Verweis auf „Symbol“ im Ubuntu -System. Wir werden also sehen, wie es gefunden werden kann und wie es in Ubuntu 20 behoben werden kann.04. Beginnen wir mit der einfachen C ++ - Dateierstellung über die Touch -Abfrage und öffnen Sie sie in Ubuntus Editor, I.e., Nano. Beide Anweisungen wurden unten angezeigt.
$ Touch -Fehler.CC
$ nano Fehler.CC

Beispiel 01:

Unser erstes Beispiel ist es, das „Fehler: ungelöstes externes Symbol“ in C zu erläutern++. Wir haben also die gerade erstellte Datei im Gnu Nano -Editor geöffnet, um Code hinzuzufügen. Daher wurde der Beispielcode mit der Initialisierung einer „iostream“ -Haellbibliothek initialisiert, um unseren Code ausführbar zu machen. Der Namespace „STD“ wird verwendet, um die Standardanweisungen des Codes zu verwenden. Wir haben die benutzerdefinierte Funktion show () nach dem Namespace deklariert, und die Main () -Methode hat die Funktionshow () innerhalb ihrer Implementierung aufgerufen. Der Programmcode enthält keine Funktionsdefinition der show () -Methode im Code. Es verursacht einen Fehler „ungelöstes externes Symbol.Sparen und führen wir unseren neu erstellten Code aus und führen wir aus.

#enthalten
Verwenden von Namespace STD;
int show ();
int main ()
zeigen();

Der G ++ - Compiler ist hier, um die C ++ - Code -Datei zu kompilieren. Die Kompilierung gibt den Fehler „Undefined Referenz zu 'show ()' zurück, die in Ubuntu 20 mit ungelöstem externen Symbol identisch ist.04 System. Dieser Code funktioniert erst, wenn der Fehler behoben ist.

$ g ++ Fehler.CC

Infolgedessen kann die Datei nicht ausgeführt werden.

$ ./A.aus

Um diesen Fehler zu vermeiden, müssen wir die Definition der Funktion show () nach der Funktion main () hinzufügen. Daher haben wir die Show () -Methode in dem Code definiert, der eine einzelne Cout -Anweisung enthält. Nach dem Anruf von der Main () -Methode wird er nun erfolgreich ausgeführt.

#enthalten
Verwenden von Namespace STD;
int show ();
int main ()
zeigen();

int show ()
Cout <

Nach dem Kompilieren des aktualisierten Code wurde der Fehler behoben.

$ g ++ Fehler.CC

Bei der Ausführung hat es die Show () -Methode ausgeführt, wie die Ausgabe demonstriert.

$ ./A.aus

Beispiel 02:

Schauen wir uns ein anderes Beispiel an, um den "Fehler: ungelöstes externes Symbol" in C ++ - Code anzuzeigen. Wir haben also die iOstream -Header -Bibliothek und den Standard -Namespace in den ersten beiden Zeilen hinzugefügt. Die Funktion der Pass () -Methode und die Funktionsdefinition „show ()“ finden Sie hier. Innerhalb der Funktion „show ()“ wird Pass () aufgerufen. Innerhalb der Funktion main () wird die Funktion show () aufgerufen. Da die Funktion pass () keine Definition im Code enthält, generiert sie einen Fehler „ungelöstes externes Symbol“ oder „undefinierte Referenz zur Anzeige“ auf der Shell.

#enthalten
Verwenden von Namespace STD;
void pass ();
void show ()
passieren();

int main ()
zeigen();

Wir haben den Fehler „undefined Referenz auf 'Pass ()' auf der Zusammenstellung. Bei der Ausführung kann die Datei bisher nicht ausgeführt werden.

$ g ++ Fehler.CC
$ ./A.aus

Um diesen Fehler aufzulösen, fügen Sie einfach die Funktion pass () im Code nach der main () -Methode hinzu, wie auf dem folgenden beigefügten Foto gezeigt. Die Funktion pass () enthält 1 Cout -Anweisung.

#enthalten
Verwenden von Namespace STD;
void pass ();
void show ()
passieren();

int main ()
zeigen();

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

Diesmal wurden in der Kompilierung keine Fehler gefunden, und die Codedatei wurde erfolgreich ausgeführt, i.e., Ausführung der Pass () -Methode.

$ g ++ Fehler.CC
$ ./A.aus

Beispiel 03:

Schauen wir uns ein anderes Beispiel an. Also haben wir den Code mit demselben Header und demselben Namespace gestartet. Vor der Funktion main () haben wir eine String -Variable "S" deklariert und das Schlüsselwort "extern" verwendet, um sie als externe Variable zu deklarieren. In der Main () -Methode haben wir es mit der Zuordnungsmethode mit einem Stringwert „Linux“ initialisiert. Die Cout -Anweisung wird hier verwendet, um die String -Variable anzuzeigen. Dies führt zu einem Fehler, da die Zeichenfolge extern ist und nicht innerhalb der Funktion main () initialisiert werden kann.

#enthalten
Verwenden von Namespace STD;
externe Zeichenfolge S;
int main ()
S = "Linux";
Cout<

Wir haben den gleichen undefinierten Verweis auf 's' Fehler in der Shell bei der Kompilierung dieses Code.

$ g ++ Fehler.CC
$ ./A.aus

Um dieses Problem zu beheben, müssen wir die Funktion der Variablenzeichenfolge in der Funktion main () deklarieren und initialisieren, ohne das Wort „extern zu verwenden“.„Gemäß dem folgenden Code können Sie feststellen, dass wir in der Funktion main () deklariert und initialisiert haben, und Cout wird verwendet, um sie anzuzeigen.

#enthalten
Verwenden von Namespace STD;
int main ()
String S = "Linux";
Cout<

Bei der aktualisierten Code -Kompilierung wird der Fehler behoben. Nach der Ausführung wurde der Wert der Zeichenfolge wie unten auf der Shell angezeigt.

$ g ++ Fehler.CC
$ ./A.aus

Abschluss:

In C ++ haben wir eine einfache Erklärung, um den Fehler „ungelöstes externes Symbol“ oder „undefinierte Referenz auf das Symbol zu lösen.„Wir haben einfache Beispiele erstellt, um es innerhalb der Ubuntu 20 zu demonstrieren.04 System. Sie können auch alle Beispiele auf jeder anderen Plattform verwenden. Wir sind sehr hoffnungsvoll auf Ihre freundliche Antwort.