Maison > développement back-end > C++ > le corps du texte

Pourquoi Clang avec la libc en mode c 0x ne parvient-il pas à lier cet exemple boost::program_options ?

Patricia Arquette
Libérer: 2024-11-03 13:43:30
original
304 Les gens l'ont consulté

Why does clang with libc   in c  0x mode fail to link this boost::program_options example?

Pourquoi clang avec libc en mode c 0x ne lie-t-il pas cet exemple boost::program_options ?

Compilation d'un exemple de programme impliquant boost::program_options avec clang en utilisant libc et le mode c 0x entraîne des erreurs de symboles non définies. Cependant, le même code se compile et se lie avec succès en utilisant g -mp-4.7 ou clang sans libc .

Le problème

Le problème vient de l'incompatibilité de boost::program_options, qui est construit en utilisant libstdc , avec libc . Afin d'éviter un mélange accidentel de bibliothèques standards incompatibles et d'assurer la compatibilité binaire, la libc utilise une fonctionnalité C 11 appelée « espace de noms en ligne ». Cela modifie l'interface binaire d'application (ABI) de std::string sans affecter son interface de programmation d'application (API).

La solution

Pour résoudre ce problème de compatibilité, reconstruisez boost en utilisant clang avec le -stdlib=libc flag :

clang++ -stdlib=libc++
Copier après la connexion

Cette action reconstruira boost avec la libc et évitera les conflits de symboles résultant de l'utilisation de bibliothèques standard incompatibles.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal