46 votes

Xcode 10 (iOS 12) ne contient pas libstdc ++6.0.9

Je télécharge le dernier Xcode d'Apple, mais j'ai trouvé que je ne peux pas rechercher la bibliothèque nommée "libstdc ++ 6.0.9". ne peut pas rechercher libstdc ++

43voto

Jeremy Huddleston Points 190

libstdc++ a été déprécié de 5 ans. Apple le plus récent de plates-formes (tvOS et watchOS) ne le supportent pas.

Un soutien a été retiré de l'iOS 12.0 Simulateur d'exécution, mais il reste dans l'iOS 12.0 (périphérique) d'exécution pour la compatibilité binaire avec les frais de port apps.

Vous devez mettre à jour votre projet à l'utilisation de la libc++ plutôt que de libstdc++ par la définition de la CLANG_CXX_LIBRARY paramètre de construction ("C++ Standard Library") de la libc++.

Si vous avez des bibliothèques statiques qui dépendent de la libstdc++.tbd, vous pouvez le contourner pour l'instant en copiant le fichier à partir du Sdk dans Xcode 9.4 (et libstdc++.*.dylib dans le simulateur iOS à l'exécution), mais ce n'est pas une solution à long terme. Vous devez contacter le fournisseur de ces bibliothèques et de la demande des versions construites à l'aide de la libc++.

22voto

Antigp Points 610

Vous pouvez le copier de l'ancien Xcode (9.4). Ça devrait marcher.

 cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
 

17voto

Oscar Apeland Points 2891

libstdc++ est éliminé dans iOS 12.

Je voudrais avoir une meilleure source que dans un Apple ingénieur sur Twitter, mais c'est tout ce que j'ai.

@jeremyhu PSA: libstdc++ est parti de l'iOS 12.0 SDK (il est présent dans le moteur d'exécution pour la compatibilité binaire). C'est jours sont comptés, sur mac os ainsi. Migrer vers la libc++ si vous ne l'avez pas déjà. #WWDC2018 #cplusplus

Edit: Voici une meilleure source, Xcode 10 notes de patch

Bâtiment avec libstdc++ est déconseillée avec Xcode 8 et n'est pas pris en charge dans Xcode 10 lors du ciblage de iOS. Les projets C++ doit désormais migrer vers la libc++ et sont recommandés pour définir une cible de déploiement d'iOS 7 ou version ultérieure. Outre le changement de la Norme C++ de la Bibliothèque paramètre de construction, les développeurs doivent vérification codée en dur de l'éditeur de liens de drapeaux et de cibler les dépendances afin de supprimer les références à libstdc++ (y compris -lstdc++, -lstdc++.6.0.9, libstdc++.6.0.9.tbd, et libstdc++.6.0.9.dylib). Dépendances de projet telle que les archives qui ont été construits à l'encontre de libstdc++ aurez aussi besoin d'être reconstruit à l'encontre de la libc++. (40885260)

15voto

刘俊利 Points 76

Xcode 10 annule la bibliothèque libstdc ++ avec la lib intégrée, nous devons donc copier le fichier dans la lib à la main.

copiez le fichier: (libstdc ++. 6.0.9.tbd) et (libstdc ++. 6.tbd) dans:

 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
 

et

 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 
 

(Veuillez noter la distinction "iPhoneOS" et "iPhoneSimulator")

nettoyer xcode et le reconstruire.

Voici le dossier.

9voto

Cœur Points 1538

Prises à partir de Xcode 10 Bêta-2 notes de version et applicables à toutes les futures versions de Xcode:

Bâtiment avec libstdc++ est déconseillée avec Xcode 8 et n'est pas pris en charge dans Xcode 10 quand le ciblage iOS. Les projets C++ doit désormais migrer vers la libc++ et sont recommandés pour définir un cible de déploiement d'iOS 7 ou version ultérieure. Outre le changement de la Norme C++ de la Bibliothèque paramètre de construction, les développeurs doivent vérification codée en dur de l'éditeur de liens de drapeaux et de cibler les dépendances afin de supprimer les références pour libstdc++ (y compris -lstdc++, -lstdc++.6.0.9, libstdc++.6.0.9.tbd, et libstdc++.6.0.9.dylib). Dépendances de projet telle que les archives qui ont été construits à l'encontre de libstdc++ aurez également besoin de être reconstruit à l'encontre de la libc++. (40885260)

Apple va probablement jamais de soutien libstdc++ de nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X