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

je télécharge le Xcode le plus récent D'Apple, mais j'ai trouvé que je ne peux pas rechercher la bibliothèque nommée "libstdc++6.0.9". cant search libstdc++

29
demandé sur Cœur 2018-06-05 10:47:25

9 réponses

libstdc++ a été déprécié il y a 5 ans. Les plateformes les plus récentes d'Apple (tvOS et watchOS) ne le supportent pas.

le Support a été supprimé de l'exécution iOS 12.0 Simulator, mais il reste dans l'exécution iOS 12.0 (device) pour une compatibilité binaire avec les applications d'expédition.

vous devriez mettre à jour votre projet pour utiliser libc++ plutôt que libstdc++ en définissant le paramètre de construction CLANG_CXX_LIBRARY ("bibliothèque Standard C++") à libc++.

Si vous avez des bibliothèques statiques cela dépend de libstdc++.tbd, vous pouvez contourner cela pour l'instant en copiant le fichier à partir des 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 demander des versions construites en utilisant libc++.

25
répondu Jeremy Huddleston Sequoia 2018-06-07 06:40:24

Vous pouvez le copier à partir de l'ancien Xcode(9.4). Il devrait fonctionner.

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/
17
répondu Antigp 2018-06-06 08:49:13
12
répondu Oscar Apeland 2018-08-02 21:18:55

Pris Xcode 10 Beta 2 notes de mise à jour et applicable à toutes les versions futures de Xcode:

construire avec libstdc++ a été déprécié avec Xcode 8 et n'est pas supporté dans Xcode 10 quand le ciblage iOS. Les projets C++ doivent maintenant migrer vers libc++ et sont recommandés pour cible de déploiement de iOS 7 ou plus. En plus de changer le paramètre de construction Standard de la bibliothèque C++ , les développeurs devraient auditer les indicateurs de linker codés en dur et les dépendances de cible pour supprimer référence pour libstdc++ (y compris -lstdc++, -lstdc++.6.0.9, libstdc++.6.0.9.tbd, et libstdc++.6.0.9.dylib). Les dépendances de projet telles que les archives statiques qui ont été construites contre libstdc++ devront également être reconstruit avec libc++. (40885260)

il est peu probable Qu'Apple supporte à nouveau libstdc++.

7
répondu Cœur 2018-08-25 10:58:40

Xcode 10 annule la bibliothèque libstdc++ avec la lib on devrait copier le fichier à la main.

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

/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 

(Merci de noter la distinction "iPhoneOS" et "iPhoneSimulator")

nettoyer xcode et le reconstruire.

Ici est le fichier.

3
répondu 刘俊利 2018-09-20 03:14:30

la réponse de Jeremy Huddleston Sequoia m'a donné la direction de résoudre ce problème. Donc, avant d'aller de l'avant, assurez-vous que vous avez lu sa réponse.

même après avoir mis à jour la bibliothèque C++ dans votre projet, vous pourriez être confronté à une erreur de lien où Xcode n'est pas en mesure de lier votre projet avec cette lib.

la solution est-si votre structure de projet a libstdc++ inclus, il est possible qu'elle soit devenue rouge parce que Xcode n'a pas pu trouver la référence pour elle. Si vous retirez cela entrée de la structure du projet et ajouter la nouvelle lib à la place(libc++), vous êtes bon à aller.

1
répondu Anup 2018-06-26 22:18:03

Parce que apple supprime libstdc++ dans Xcode 10.0, donc, si vous voulez résoudre le problème, vous pouvez essayer de copier manuellement le fichier lib.

1.iPhoneOS et iPhoneSimulator le fichier

copier le fichier: libstdc++.6.0.9.tbd et libstdc++.6.tbd et libstdc++.tbd pour :

  • /Applications / Xcode.app/Contents/Développeur/plates-formes/iPhoneOS.plate-forme/développeur/SDKs / iPhoneOS.sdk / usr/lib/

  • /Applications / Xcode.app/Contents/Développeur/plates-formes/iPhoneSimulator.plate-forme / développeur/SDKs / iphonesimulateur.sdk / usr/lib/

2.iOS.simruntime le fichier

copier le fichier: libstdc++.6.0.9.dylib et libstdc++.6.dylib et libstdc++.dylib pour:

  • / Applications / Xcode.app/Contents/Développeur/plates-formes/iPhoneOS.plate-forme/développeur/Bibliothèque/Coresimulateur/Profiles/Runtimes / iOS.simruntime/Contents/Resources/RuntimeRoot/usr / lib
1
répondu RamboLu 2018-10-11 10:29:52

Copiez-le à partir de L'ancien Xcode(9.4) fonctionnera pour les appareils iOS physiques. Pour Simulateur de problèmes avec Did find: /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator. On dirait qu'apple a retiré le support de compatibilité pour le simulateur. Il suffit de télécharger iOS 11.4 simulateur et il peut être exécuté sur elle.

0
répondu Fan 2018-09-18 08:50:48

pour simulateur, il suffit de supprimer libstdc++.6.0.9.déterminer à partir de la cadres et bibliothèques reliés.

0
répondu tounaobun 2018-09-26 02:10:13