Maison >développement back-end >C++ >Comment résoudre les problèmes de conversion std::__cxx11::string en std::string en C ?
std::__cxx11::string to std::string Conversion
En C 11, la bibliothèque fournit un std::__cxx11 : :type de chaîne qui diffère du standard std::string. Pour assurer la compatibilité avec les bibliothèques externes qui peuvent ne pas prendre en charge C 11, il devient nécessaire d'effectuer une conversion entre ces deux types de chaînes.
Selon le message d'erreur fourni, l'éditeur de liens n'est pas en mesure de résoudre les références impliquant std::__cxx11 : :chaîne. Une raison potentielle est l'utilisation de la macro _GLIBCXX_USE_CXX11_ABI incorrecte.
Solution :
Pour résoudre ce problème, les utilisateurs devront peut-être vérifier s'ils utilisent GCC 5 ou une version ultérieure. . Si tel est le cas, ils doivent définir la macro _GLIBCXX_USE_CXX11_ABI sur 0 avant d'inclure les en-têtes de bibliothèque standard. Cela peut être fait comme suit :
#define _GLIBCXX_USE_CXX11_ABI 0
En définissant cette macro, l'éditeur de liens utilisera l'ancien ABI, garantissant la compatibilité avec les bibliothèques externes. En conséquence, la conversion de std::__cxx11::string en std::string devrait devenir transparente.
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!