Maison  >  Article  >  développement back-end  >  Pourquoi `__gxx_personality_v0` manque-t-il dans mon programme C autonome et comment puis-je y remédier ?

Pourquoi `__gxx_personality_v0` manque-t-il dans mon programme C autonome et comment puis-je y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-18 04:30:02320parcourir

Why is `__gxx_personality_v0` Missing in My Free-Standing C   Program, and How Can I Fix It?

Quel est le rôle de __gxx_personality_v0 dans les programmes C autonomes ?

Une erreur d'éditeur de liens persistante lors de la compilation d'un programme C autonome peut être lié à la définition manquante du symbole __gxx_personality_v0 dans libstdc . Bien qu'une simple définition puisse résoudre le problème, il est essentiel de comprendre son objectif.

__gxx_personality_v0 fait partie intégrante des tables de déroulement de la pile, comme en témoignent les résultats de l'assembly. L'ABI Itanium C définit explicitement son rôle en tant que routine de personnalité.

En déclarant __gxx_personality_v0 comme pointeur de vide NULL global, l'erreur est efficacement corrigée. Toutefois, cela se produit car aucune exception n’est levée. En cas d'exception, le comportement deviendrait évident.

Pour éviter de tels problèmes, envisagez de désactiver les exceptions avec -fno-exceptions et RTTI avec -fno-rtti. Alternativement, une liaison avec g au lieu de gcc ajoutera automatiquement -lstdc , résolvant la dépendance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn