Domanda

Fino Xcode 4 finale (stavo usando 3.latest e 4 GM per il tempo che era disponibile) questo non è accaduto. Quando ho aggiornato a Xcode 4 versione finale, ho iniziato a ricevere un errore di collegamento durante il tentativo di collegare la versione ARMv7 con la mia libreria non ARMv7 (il mio progetto è impostato con il default ARMv6 standard ARMv7 architetture validi):

ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --

La versione ARMv6 compila bene, ma l'intero processo di compilazione fallisce con 77 errori di collegamento.

Capisco che questo è il comportamento previsto, non ci vorrà un link verso ARMv7 con un lib ARMv6. La correzione sta impostando il mio progetto a ARMv6 solo. La mia domanda è: perché è stato questo lavoro nelle versioni precedenti di Xcode?

Se ho impostato a ARMv6 solo, comincio a ottenere questo avvertimento:

Check dependencies

[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").

non mi piace vedere le avvertenze :-) chiunque abbia problemi simili?

Grazie,

Fernando

È stato utile?

Soluzione

Ho appena compiuto l'architettura attiva costruire solo su Sì nel progetto -> configurazione Regolazione -.> Scheda Architetture

Altri suggerimenti

In iOS SDK 4.3, sembra che il linker semplicemente si rifiutano di utilizzare una libreria ARMv6 in un binario ARMv7 -. Questo non era il caso prima

Ecco perché ho dovuto aggiornare il http://code.google.com/ p / ios-static-librerie / progetto per generare sia ARMv6 e ARMv7 versioni delle librerie.

Ho aggiunto quadro 3rd Party con alcune classi demo in progetto, ma una volta implementato con successo ho rimosso quelle classi demo e da allora l'errore iniziato a venire Errore "Ld: ........., il file è universale, ma non contiene una (n) fetta ARMv6 per l'architettura ARMv6"

Dopo graffiare la mia testa per un giorno intero ho trovato questa soluzione mattina dopo forse utile per i compagni di compagni di iphone coz so che il dolore

Obiettivi -> "Il tuo target Progetto" -> Informazioni -> Costruire architettura attivo solo impostata su YES

Ecco fatto ..

Ha avuto lo stesso problema. Ma il motivo era diverso suppongo. Stavo usando il file library.a costruito per simulatore e cercare di eseguire sul dispositivo .. venuto a sapere che ho bisogno di diversi file .a per simulatore e dispositivo. Spero che questo aiuta qualcuno;)

Anche se io ancora non so il motivo per cui questo è cominciato accadendo solo nella versione finale Xcode 4, ho scoperto che le mie librerie esterne (SSL e crittografia) sono stati compilati sia contro ARMv6 e ARMv7 nel progetto Google Code pochissimi giorni fa:

http://code.google.com/p/ios-static-libraries /

In questo modo risolvere il problema se si definisce due diverse percorso di ricerca della libreria: uno per ARMv6, uno per ARMv7.

Grazie,

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top