Les développeurs travaillant avec des bibliothèques C 11 qui ne sont pas configurées pour cela peuvent rencontrer des erreurs de liaison liées à la conversion entre std::__cxx11::string et std::string. Malgré les tentatives de conversion, cette conversion échoue.
Une enquête plus approfondie révèle un problème potentiel avec GCC 5. Selon les notes de version de GCC 5, de telles erreurs de l'éditeur de liens peuvent indiquer l'utilisation de fichiers objets compilés avec différentes valeurs de macro _GLIBCXX_USE_CXX11_ABI. . Cela se produit souvent lors de la création d'une liaison vers une bibliothèque tierce compilée avec une version antérieure de GCC.
Pour résoudre ce problème, le développeur peut redéfinir la macro _GLIBCXX_USE_CXX11_ABI sur 0 avant d'inclure les en-têtes de bibliothèque standard. Cela devrait corriger les erreurs de l'éditeur de liens :
#define _GLIBCXX_USE_CXX11_ABI 0 #include <standard_library_headers.h>
En suivant cette approche, les développeurs peuvent réussir la conversion entre std::__cxx11::string et std::string, même lorsqu'ils utilisent des bibliothèques qui ne sont pas compatibles C 11.
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!