J'ai récemment mis à jour vers iPhone SDK 4.0 et ne suis plus en mesure de construire mon projet pour le simulateur iPhone. Le problème est que les classes d'un de mes propres bibliothèques ne peuvent plus être trouvées par ld:Erreur lieur (seul simulateur) avec sa propre bibliothèque après la mise à jour vers l'iPhone SDK 4.0
"_OBJC_CLASS_$_Book", referenced from:
objc-class-ref-to-Book in Category.o
(maybe you meant: ...)
ld: symbol(s) not found
collect2: ld returned 1 exit status
J'ai déjà lu d'autres messages sur des problèmes similaires, comme par exemple here. "Malheureusement", mon problème n'a rien à voir avec un framework SDK, mais avec ma propre bibliothèque, donc les solutions mentionnées ici ne sont pas applicables ici. La bibliothèque est incluse sous "Link Binary With Libraries" de ma cible, les chemins de recherche de bibliothèque sont corrects (vérifiés avec XCode et avec un éditeur de texte brut directement dans mon fichier de projet) et correctement ajoutés à la commande gcc. J'utilise iPhone Simulator 3.2 comme base SDK, mais le même problème se produit avec SDK 4.0. Encore une fois, cela fonctionne avec la cible de mon périphérique mais pas avec ma cible de simulateur. Il a travaillé avec les deux, cependant, avant de mettre à jour de l'iPhone SDK 3.2 à 4.0. J'ai également été capable de reproduire cette erreur en créant un nouveau projet avec un seul fichier et la bibliothèque liée. Cependant, le lib devrait être bon car il a fonctionné avec le simulateur 3.2 avant que j'ai mis à jour XCode et mon SDK.
Plus Faits: Mac OS X 10.6.3, XCode 3.2.3 64 bits, iPhone OS 3.2, GCC 4.2
Toute aide serait très appréciée.
EDIT:
Après la réinstallation SDK 3.2, tout a fonctionné comme prévu à nouveau. Il est à noter que les SDK du dossier /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs sont écrasés à chaque installation. J'ai ensuite essayé de réinstaller SDK 4.0 à nouveau et la même erreur que ci-dessus s'est produite. Je n'ai rien changé dans mon projet et j'ai toujours utilisé 3.2 comme SDK de base.
Le problème peut donc éventuellement être réduit aux options suivantes:
- Apple a changé STH. dans le Simulator SDK 3.2 qui provoque le problème
- une modification de XCode 3.2.3 provoque le problème
- indicateurs de compilateur faux/manquants lors de la construction de ma propre bibliothèque (ces indicateurs, cependant, ne poseraient problème qu'avec un SDK modifié ou l'IDE a changé)
je l'ai fait aussi un diff dossier sur /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk pour l'ancienne et la nouvelle version de ce dossier. Il s'est avéré qu'il y a en fait des changements mineurs dans le "même" SDK. Je pense toujours que c'est un problème d'indicateur IDE/compilateur, cependant.
Quelqu'un a des idées? Je ne veux pas coller à 3.2 pour toujours ...
J'ai eu le même problème. Mystérieusement, cela ne s'est produit que pour la version "Release" mais pas pour la version "Debug", même si je n'ai rien changé après la mise à jour du SDK 4.0. Cependant, je n'ai pas encore examiné cela. – Stiefel