2009-09-30 13 views
0

d'une manière ou d'une autre j'ai réussi à bousiller mes paramètres de projet XCode lors de la compilation pour l'iPhone. Il échoue lors de la liaison en disant queImpossible de lier en XCode lors de la compilation pour l'iPhone

ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/AddressBook.framework/AddressBook, file is not of required architecture 
... (same for the other frameworks). 

Le problème est qu'il tente d'utiliser le cadre de simulateur lors de la compilation pour l'iPhone.

Quand vous regardez la commande de lien réel:

setenv IPHONEOS_DEPLOYMENT_TARGET 3.1 
setenv MACOSX_DEPLOYMENT_TARGET 10.5 
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk 
-L/Users/ben/development/xcode_output/Debug-iphoneos 
-F/Users/ben/development/xcode_output/Debug-iphoneos 
-F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/ 
System/Library/Frameworks 
-F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/ 
System/Library/Frameworks 

vous pouvez voir que le cadre du simulateur et le chemin-cadre iPhone est fourni. Comment puis-je changer cela? Je ne l'ai trouvé nulle part dans les paramètres. Les paramètres [FRAMEWORK_SEARCH_PATHS, -F] dans les paramètres du projet sont vides.

Peut-être que le problème est lié à une bibliothèque statique. Les paramètres du projet pour cette bibliothèque statique contiennent beaucoup de paramètres en double. Il y a toujours deux réglages identiques (par exemple deux blocs de chemin de recherche, deux blocs de génération de code GCC-4.2, etc.) Cela n'a pas l'air normal.

Cordialement

+0

Quelle est la valeur de votre « SDK Base de » construire variable? (Faites un clic droit sur la cible et "Obtenir des informations"). Vous pouvez également rechercher dans les informations de construction pour les chaînes intéressantes: iPhone, Simulator, 3.0, 3.1. Pourriez-vous poster une capture d'écran des "paramètres en double"?Cette librairie statique est-elle une autre cible dans votre projet? – nall

Répondre

0

Je pense que le problème était que la bibliothèque statique à laquelle j'avais été connectée avait deux cibles pour l'iPhone et pour le simulateur. J'ai changé cela pour qu'il n'y ait qu'une seule cible et cela semblait avoir résolu le problème.

Cordialement

Ben

0

La seule façon que je réussi à résoudre ce problème a été en créant un nouveau projet et recommencer :-(

0

ld: avertissement: dans/Developer/Plateformes/iPhoneSimulator.platform/développeur/SDKs/iPhoneSimulator3.0.sdk /System/Library/Frameworks/AddressBook.framework/AddressBook, fichier n'est pas l'architecture nécessaire ... (même pour les autres cadres).

Votre bâtiment pour l'appareil, n'est-ce pas? Pas de simulateur? Trouvez le même cadre, mais sous l'appareil. Vérifiez le chemin complet du fichier lorsque vous importez.

0

Vérifiez les chemins de recherche de l'infrastructure de votre cible. S'il existe un chemin explicite vers le SDK du simulateur, supprimez-le.

+0

Rappelez-vous, les paramètres de la cible, pas les paramètres du projet. – cdespinosa

0

J'ai trouvé quand j'ai ajouté un cadre à mon projet la « ancienne » en naviguant /Developer/platforms/.../Frameworks, il a ajouté le chemin complet du liste de recherche de chemin d'accès à la structure dans mes paramètres cible. Cela signifiait que tous mes cadres étaient soudainement borked. Assurez-vous qu'il n'y a pas de chemin d'accès complet dans la liste de recherche et vous devriez être en mesure de réparer votre projet sans avoir à en créer un nouveau.

[Modifier] Et un examen plus approfondi, je vois cette question a été déjà répondu par cdespinoza :)