IOS7 (seulement) stdlibc++ reliant problème
J'ai besoin d'aide.
J'ai eu un framwork qui a été à l'aide de stdc++ comme std:string.
Maintenant, quand j'ai créé une nouvelle application pour IOS7 seulement il y a un problème avec le lien de ce cadre en raison de problèmes avec stdc++ lib:
Les symboles non définis pour l'architecture armv7
"std::basic_string, std::allocator >::_Rep::_S_empty_rep_storage", référencé à partir de ...
J'ai trouvé quelque chose d'étrange que lorsque je change la Délimiter la cible à ios6 dans cette application tous fonctionne bien.
Avec ios7, je vois des erreurs.
J'ai déjà indicateur dans d'autres drapeaux de l'éditeur de liens: -lstdc++
Une idée de ce que l'ami fais de mal?
- est-ce que les fichiers de votre projet à l'aide de l'Objective-C++ extension de fichier de "
.mm
" et si pas, ce qui se passe lorsque vous modifiez l'un d'eux d'avoir cette extension de fichier? - j'utilise .mm dans l'une des classes du framework qui ii lien. Quand j'ai changé un des fichiers de projet normal, rien n'a changé et le problème est toujours présent.
- quel est le c++ dialecte réglé?
- Compilateur Par Défaut
Vous devez vous connecter pour publier un commentaire.
Juste une mise à jour sur cette réponse:
Cette étape est très importante!
S'assurer que C++ Standard Library est fixé à libstdc++ (GNU c++ standard library) dans l'Apple LLVM 5.0 Compilateur Paramètres de construction de la
De fond:
J'ai une application iOS qui a brusquement cessé de construire pour iOS 7 avec la bibliothèque standard des erreurs de lien. J'avais été le test de l'application avec succès sur le simulateur et sur un iPad mini, et archivé bien, mais quand j'ai ajouté un iPhone 5S pour les tests, j'ai commencé à recevoir des erreurs de lien (peut être à cause d'une nouvelle architecture dans le mélange?).
La recherche de l'erreur de lien sur Google, j'ai trouvé des conseils à ajouter explicitement libstdc++.dylib les liens entre les bibliothèques. Cela ne fonctionne pas.
J'ai testé en ajoutant libstdc++.6.dylib pour les bibliothèques liées à la place; ce qui a éliminé les erreurs de lien, mais l'application s'est écrasé dans la bibliothèque C++ standard code très tôt.
Retrait de l'explicite les ajouts de la bibliothèque et de changer le compilateur réglage dans les Paramètres de construction, comme indiqué ci-dessus, corrigé les erreurs de lien et d'exécution problème.
Grâce à rimestad pour le pointeur!
Pour être honnête, je n'aime pas la réponse ci-dessus, car il utilise la lib statique et non dynamique!
J'ai eu le problème moi-même et a constaté que le problème, c'est que xcode est pas en mesure de trouver tout les fichiers de C++ dans votre projet et donc suppose que le libstc++ n'est pas nécessaire!
Assez ennuyeux lorsque vous créez un lien vers une lib statique qui l'utilise!!
Solution :
est fixé à libstdc++ (GNU c++ standard library) dans les Paramètres de construction
Cela a fonctionné pour moi et je n'ai pas ajoutez -lstdc++ pour d'Autres Drapeaux de l'éditeur de liens!
Espère que ça aide d'autres avec le même problème.
Merci pour votre aide.
J'ai trouvé la solution.
J'ai été aide -lstdc++ drapeau dans d'autres drapeaux de l'éditeur de liens, mais il n'est pas assez présent.
J'ai dû ajouter "libstdc++.6.0.9.dylib dans BuildPhases->Lien Binaire Avec les Bibliothèques.
Il y avait quelque part dans le net des infos que xcode a des problèmes avec ios7 stdc++ lib sélection et il doit être sélectionné manuellement.
Ce qui concerne,
Marek
J'ai eu un problème similaire, mais @MarekM de ne répondre qu'à résoudre une partie de mon problème, j'ai donc essayé d'ajouter libstdc++.dylib et libstdc++.6.dylib, et ça fait une erreur de compilation disparu.