2009-04-29 6 views
2

Je reçois cette erreurComment faire pour résoudre l'erreur Undefined Symbols?

Undefined symbols: 
".objc_class_name_MyClass", referenced from: 
    [email protected][email protected][email protected] in infoViewController.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

Lorsque vous faites référence à la méthode statique ci-dessous:

[MyClass ClickComment:self.navigationController]; 

MyClass est définie dans une bibliothèque statique que je fais référence dans mon projet d'application. Quand je commence à taper "[MyClass" ..., j'obtiens des indices. Le projet d'application sait que MyClass existe et quelles méthodes sont définies dessus. Pourtant, j'ai l'erreur ci-dessus. Commenter cet appel permet au projet de se construire sans erreur.

Dans la bibliothèque statique, je dispose d'un fichier .h qui fait référence à tous les fichiers .h de la bibliothèque. De cette façon, le projet d'application doit référencer un seul fichier .h de la bibliothèque statique. Le projet de bibliothèque statique a également une application. Je l'utilise pour tester la bibliothèque statique. Je peux faire l'appel ci-dessus très bien. Je vois généralement ces types d'erreurs lorsque la bibliothèque statique a construit une version de périphérique/débogage et que le projet de l'application a un build simulator/debug. Cependant, les deux versions sont synchronisées.

Je sais qu'il ya un problème de référence, mais je ne suis pas sûr comment le résoudre. Aucune suggestion?

Répondre

5

Cela signifie que les fichiers d'en-tête se trouvent lors de la compilation, mais l'éditeur de liens ne sont pas au courant de la bibliothèque statique. Assurez-vous que votre bibliothèque statique est répertoriée sous "Cibles -> VotreTableMain> Lien Binaire avec les bibliothèques" dans la vue du projet.

Voir http://developer.apple.com/tools/XCode/XCodeprojects.html

+0

Je l'ai maintenant fonctionnant. Principalement, dans la bibliothèque statique de MyClass, j'avais besoin d'ajouter quelques instructions # import à MyClass.m. J'ai trouvé cela étrange puisque toutes les instructions # import sont dans le fichier .h mentionné ci-dessus, qui est référencé par le fichier PCH du projet, que je vois dans les en-têtes compilés de la cible de la bibliothèque. Quelque part, il y a toujours une déconnexion. – 4thSpace

Questions connexes