2011-04-27 1 views
0

J'essaie donc d'utiliser une bibliothèque C dans un projet iPhone Objective-C. Je reçois cette erreur d'éditeur de liens lorsque je tente de compiler:Problème de liaison avec la bibliothèque C dans XCode - le fichier a été créé pour un format de fichier non pris en charge qui n'est pas l'architecture

file was built for unsupported file format which is not the architecture being linked (i386)

Je construis cette bibliothèque en utilisant la norme

./configure font

Quelle architecture dois-je construire ce avec pour travailler avec l'iPhone projet? Merci! Mise à jour

J'ai mis à jour le Makefile et ajouté -arch i386 à la ligne CFLAGS. Quand je lance make je maintenant cette obtiens cette erreur:

Compiling spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld: warning: in ../src/libircclient.a, file was built for unsupported file format which is not the architecture being linked (x86_64)

Est-ce que cela signifie que je dois modifier un autre makefile quelque part ??

Répondre

1

Il a probablement été construit pour x86_64 qui est la valeur par défaut. Vous devez modifier la bibliothèque pour qu'elle soit compilée pour i386 et qu'elle corresponde à votre application.

Généralement, vous le faites en définissant la variable d'environnement CFLAGS sur -arch i386 avant d'exécuter configure. Assurez-vous de faire un "make dist clean" en premier. Si cela ne fonctionne pas, vous pouvez également modifier manuellement le Makefile après que configure le crée et ajoute -arch i386 à la ligne CFLAGS =.

+0

Essayez-le dès que possible. Merci pour l'info! – Nick

+0

Malgré l'erreur que je reçois lors de la construction avec ce CFLAG -arch i386 définir la bibliothèque semble lier – Nick

0

Cette erreur:

Compiling spammer.c gcc -o spammer spammer.o ../src/libircclient.a -lpthread ld: warning: in ../src/libircclient.a, file was built for unsupported file format which is not the architecture being linked (x86_64) 

vient lors de la construction des exemples et ce n'est pas vraiment ce que vous voulez bien? Effectuez une make dans le dossier SRC et la construction avec -arch i386 ou -arch arvm7 fonctionnera.

Questions connexes