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".
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++.
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/
libstdc++
est supprimé dans iOS 12.
j'aimerais avoir une meilleure source Qu'un ingénieur Apple sur Twitter, mais c'est tout ce que j'ai.
@jeremyhu PSA: libstdc++ est passé du SDK iOS 12.0 (il est présent à l'exécution pour la compatibilité binaire). Les jours sont comptés sur macOS aussi. Migrer vers libc++ si vous ne l'avez pas déjà fait. # WWDC2018 #cplusplus
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++.
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.
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.
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
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.
pour simulateur, il suffit de supprimer libstdc++.6.0.9.déterminer à partir de la cadres et bibliothèques reliés.