2010-11-17 4 views
1

J'ai cette version mobclix, j'avais une version plus ancienne mais je voulais la mettre à jour, j'ai enlevé l'ancien fichier .a et les en-têtes, et ajouté les nouveaux, mais Je reçois le message d'erreur disant:La bibliothèque de mise à jour me donne le (s) symbole (s) non trouvé dans xcode

"_OBJ_CLASS_$_MobclixAdViewiPhone_320x50", referenced from: 
Objc-class-ref-to-MobclixAdViewiPhone_320x50 in AdManager.o 
Symbol(s) not found 
Collect2: ld returned 1 exit status 

J'ai déjà le répertoire lib dans la cible « liée bibliothèques », a fait un Xcode propre, remis en marche, et pourtant je reçois le même message d'erreur.

Cela s'est produit dans le passé, et je n'ai pas trouvé de réponse, j'ai dû faire un nouveau projet, mais je pense que c'est une perte de temps. S'il vous plaît aider.

+0

Et nuked votre répertoire de construction? –

+0

yep, j'ai supprimé le répertoire de construction, pas de chance ... – Leg10n

Répondre

1

MobclixAdViewiPhone_320x50 n'étant pas trouvé, vous ne liez pas correctement mobclix. Aime XCode: avoir la bibliothèque dans la section "Link Binary With Libraries" de votre cible ne signifie pas que la bibliothèque sera liée. Vous devez vous assurer que les paramètres de construction de votre cible> Chemins de recherche de bibliothèque contiennent le chemin correct vers la bibliothèque.

+0

Je vois un désordre de chemins !, puisque je garde les anciennes versions de la lib, c'était comme mélanger les nouveaux en-têtes avec l'ancien fichier ".a", merci beaucoup!, Enlevé les anciens chemins de recherche et laissé seulement le nouveau. – Leg10n

0

Supprimez complètement la bibliothèque du projet Xcode, puis ajoutez-la de nouveau, et ajoutez-la de nouveau à votre phase de liaison. On dirait que Xcode est bloqué en essayant de créer un lien avec une bibliothèque qui n'existe plus.

A défaut:

  1. Ajouter une nouvelle phase de construction: Faites un clic droit de la cible, Ajouter -> Nouvelle phase de construction -> Nouvelle copie des fichiers Phase de construction.
  2. Définissez la destination sur "Répertoire des produits".
  3. Faites glisser votre bibliothèque dans cette phase de construction, puis; (Important!) Faites glisser la position de la nouvelle phase de construction afin qu'elle soit ordonnée avant la phase de compilation.

Ceci est nécessaire si la bibliothèque n'est pas réellement installée dans un chemin système. Il y a d'autres façons d'obtenir le même effet, mais celui-ci est agréable et portable.

+0

J'ai supprimé la lib de xcode et du "lien binaire avec les bibliothèques" de la cible, puis je crée un nouveau groupe et "ajouter des fichiers existants" et ajouter la nouvelle librairie, j'ai vérifié que la lib est ajoutée à la cible, mais j'ai la même erreur. – Leg10n

+0

Essayez ceci. Ajouter une nouvelle phase de construction: Faites un clic droit sur la cible, Ajouter -> Nouvelle phase de construction -> Nouvelle phase de construction de fichiers de copie. Définissez la destination sur "Répertoire des produits". Faites glisser votre bibliothèque dans cette phase de construction, puis (important!) Faites glisser la phase de construction de sorte qu'elle vienne * avant * la phase de compilation. Xcode devrait mieux utiliser les choses du répertoire du projet, mais ce n'est malheureusement pas le cas. Copier la dépendance dans le répertoire de construction va lui donner un coup de main. – d11wtq

Questions connexes