Erreur Symbole externe non résolu C ++

Erreur Symbole externe non résolu C ++
Une variété d'erreurs peut se produire dans le code tout en compilant vers n'importe quel langage de programmation comme C++. Il y a une erreur de symbole externe non résolu de bon nombre de ces erreurs en C ++ jusqu'à présent. Cela peut se produire dans votre code pendant la compilation lorsque vous manquez une définition de fonction, une bibliothèque est manquante pour l'utilisation des définitions, une variable externe a été définie dans le code, ou un fichier non fondé a été inclus dans le code. D'un autre côté, l'erreur de symbole externe non résolue est une référence non définie au «symbole» dans le système Ubuntu. Donc, nous verrons comment il peut être trouvé et comment le résoudre dans Ubuntu 20.04. Commençons par la création de fichiers C ++ simple via la requête Touch et l'ouvrant dans l'éditeur d'Ubuntu, je.e., nano. Les deux instructions ont été affichées ci-dessous.
$ tactile Erreur.CC
$ error nano.CC

Exemple 01:

Notre premier exemple est d'élaborer sur «l'erreur: symbole externe non résolu» en C++. Donc, nous avons ouvert le fichier juste créé sur l'éditeur GNU Nano pour y ajouter du code. Ainsi, l'exemple de code a été démarré par initialisation d'une bibliothèque d'en-tête «iOStream» pour rendre notre code exécutable. L'espace de noms «STD» est utilisé pour utiliser les instructions standard du code. Nous avons déclaré la fonction définie par l'utilisateur show () après l'espace de noms, et la méthode principale () a appelé la fonction show () dans son implémentation. Le code de programme ne contient aucune définition de fonction de la méthode show () dans le code; Il provoquera une erreur «Symbole externe non résolu."Enregistrons et exécutons notre code nouvellement fait.

#inclure
Utilisation de Namespace Std;
int show ();
int main()
montrer();

Le compilateur G ++ sera là pour compiler le fichier de code C ++. La compilation renvoie la méthode d'erreur «non définie à la méthode« show () », qui est la même chose qu'un symbole externe non résolu dans Ubuntu 20.04 Système. Ce code ne fonctionnera pas tant que l'erreur n'est pas résolue.

Erreur $ g ++.CC

En conséquence, le fichier ne peut pas être exécuté.

$ ./un.dehors

Pour éviter cette erreur, nous devons ajouter la définition de la fonction show () après la fonction principale (). Donc, nous avons défini la méthode Show () dans le code contenant une seule instruction COUT. Maintenant, après l'appel de la méthode principale (), il sera exécuté avec succès.

#inclure
Utilisation de Namespace Std;
int show ();
int main()
montrer();

int show ()
couter <

Après avoir compilé le code mis à jour, l'erreur a été résolue.

Erreur $ g ++.CC

En exécution, il a exécuté la méthode show () comme la sortie le démontre.

$ ./un.dehors

Exemple 02:

Jetons un coup d'œil à un autre exemple pour voir «Erreur: symbole externe non résolu» dans le code C ++. Donc, nous avons ajouté la bibliothèque d'en-tête ioStream et l'espace de noms standard aux deux premières lignes. La déclaration de la méthode pass () et la définition de la fonction «show ()» est ici. Dans la fonction "show ()", la méthode passante () est appelée. Dans la fonction main (), la fonction show () est appelée. Comme la fonction pass () ne contient aucune définition dans le code, elle générera une erreur «symbole externe non résolu» ou «référence non définie pour afficher» sur le shell.

#inclure
Utilisation de Namespace Std;
void pass ();
void show ()
passer();

int main()
montrer();

Nous avons l'erreur «référence non définie à« passer () »sur la compilation. En exécution, il n'est pas en mesure d'exécuter le fichier jusqu'à présent.

Erreur $ g ++.CC
$ ./un.dehors

Pour résoudre cette erreur, ajoutez simplement la définition de la fonction pass () dans le code après la méthode principale () comme démontré sur la photo ci-dessous. La fonction pass () contient 1 instruction COUT.

#inclure
Utilisation de Namespace Std;
void pass ();
void show ()
passer();

int main()
montrer();

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

Cette fois, aucune erreur n'a été trouvée dans la compilation et le fichier de code a été exécuté avec succès, je.e., Exécution de la méthode Pass ().

Erreur $ g ++.CC
$ ./un.dehors

Exemple 03:

Jetons un coup d'œil à un exemple différent. Donc, nous avons commencé le code avec le même en-tête et espace de noms. Avant la fonction Main (), nous avons déclaré une variable de chaîne «S» et utilisé le mot-clé «externe» pour le déclarer comme une variable externe. Dans la méthode Main (), nous l'avons initialisée avec une certaine valeur de chaîne «Linux» en utilisant la méthode d'affectation. L'instruction COUT est utilisée ici pour afficher la variable de chaîne. Il provoquera une erreur car la chaîne est externe et ne peut pas être initialisée dans la fonction principale ().

#inclure
Utilisation de Namespace Std;
chaîne externe S;
int main()
S = "Linux";
couter<

Nous avons la même référence non définie à l'erreur «S» dans le shell sur la compilation de ce code.

Erreur $ g ++.CC
$ ./un.dehors

Pour résoudre ce problème, nous devons déclarer et initialiser la fonction de la chaîne variable à l'intérieur de la fonction principale () sans utiliser le mot «extern.«Selon le code ci-dessous, vous pouvez voir que nous avons déclaré et initialisé la chaîne« dans la fonction Main (), et Cout est utilisé pour l'afficher.

#inclure
Utilisation de Namespace Std;
int main()
String S = "Linux";
couter<

Lors de la compilation de code mise à jour, l'erreur est résolue. Après l'exécution, la valeur de la chaîne a été affichée sur le shell comme ci-dessous.

Erreur $ g ++.CC
$ ./un.dehors

Conclusion:

En C ++, nous avons une explication simple pour créer et résoudre l'erreur «symbole externe non résolu» ou «référence non définie au symbole.«Nous avons créé des exemples simples pour le démontrer dans l'ubuntu 20.04 Système. Vous pouvez également utiliser tous les exemples sur n'importe quelle autre plate-forme. Nous sommes extrêmement plein d'espoir pour votre aimable réponse.