reliant un c ++ statique bibliothèque construite par gcc avec un programme compilé par xlC?

StackOverflow https://stackoverflow.com/questions/4148769

  •  30-09-2019
  •  | 
  •  

Question

J'ai une bibliothèque statique tiers qui a été construit sur AIX avec gcc. Lorsque je tente de lien vers cette bibliothèque en utilisant le compilateur AIX xlC je reçois toutes sortes de symboles non résolus. Je crois qu'il est en raison des différences de nom mutiler. Si je reçois les noms manged de la bibliothèque avec la commande nm est qu'il ya quelque chose de fondamentalement mauvais dans la construction du binaire avec le compilateur xlC à condition qu'il puisse trouver les symboles qu'il recherche? Quels problèmes que je vous demande?

Était-ce utile?

La solution

Ce sera très probablement pas travailler; voir la question C ++ Faq Lite à ce sujet.

C ++ est beaucoup plus compliqué que C, et il y a beaucoup de choses supplémentaires qui pourraient ne pas être compatibles.

Pour quelques exemples, est l'exception manipulation compatible? Les données sont-objets disposés de la même manière (en C, l'ordre est comme indiqué, mais en C ++, il peut varier avec spécificateurs d'accès)? Est-ce que les vtables fonctionnent de la même? Comment est gérée dynamic_cast?

La différence de nom mangling ne vous empêche de relier, mais il y a beaucoup d'autres différences qui peuvent vous mordre.

Vous êtes probablement mieux d'utiliser la version de gcc ils l'ont fait. Voilà ce que je devais faire dans un projet similaire une fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top