2012-11-20 2 views
0

Nous avons implémenté une bibliothèque statique et essayé de l'utiliser sur le projet. La bibliothèque est compilé/bien construire, mais nous essayons de lancer le projet après l'importation .a & .h respectivement, nous avons rencontré avec l'erreur suivante:Bibliothèque statique et XCode 4.x

ld: warning: ignoring file Lib.a, file was built for archive which is not the architecture being linked (i386) 

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_MFourInOneStaticLib", referenced from: 
     objc-class-ref in MAppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

je l'ai déjà vérifié les architecture.More-over, Nous utilisons le simulateur à des fins de test.

+0

Vous devez créer une bibliothèque universelle à l'aide de l'outil "lipo". –

Répondre

2

Bien regarde votre lib ne contient pas la bonne architecture.

pour ios dont vous avez besoin ARMv7 et pour le simulateur vous avez besoin i386

pour le tester

lipo -info %NAME% 

souvent lipo est conçue uniquement pour procéder à l'armement x86

a construit pour les deux arcs, puis combiner les deux fichiers

lipo ./build/Release-iphoneos/%NAME% ./build/Release-iphonesimulator/%NAME% -output ./Dist/lib/%NAME% -create 
+0

Merci pour votre réponse rapide. En fait, étant donné que nous avons besoin de la compatibilité ios3.0 et ios 4.0, nous utilisons à la fois l'architecture armv6 et armv7.Aussi, nous avons ajouté le i386 à des fins de test au simulateur, mais l'erreur est toujours la même. Aussi, s'il vous plaît élaborer moi comment utiliser l'outil «lipo» car c'est vraiment un nouveau concept pour nous. –

+0

ce serait la même chose avec armv6 :) lio -info% NAME% = affiche les architectures à l'intérieur de lib, libo F1 F2 -output F3 -create combine F1 et F2 ... en les ajoutant simplement les unes aux autres et les enregistre comme F3 –

+0

Au terminal, que devrions-nous utiliser au lieu de% NAME%, selon notre compréhension, la syntaxe que vous fournissez sera exécutée sur le terminal? –

0

Avez-vous vérifié ce lien? Make a fat library Je l'utilise pour mon projet et ça fonctionne bien.

+0

Merci, Brian ... Laissez-moi essayer et après vous revenir ... :) –

Questions connexes