Frage

Bis Xcode 4 endgültig (ich verwendete 3.Latest und 4 g für die verfügbare Zeit) ist dies nicht passiert. Als ich auf die endgültige Version von Xcode 4 upgrade, fing ich an, einen Verknüpfungsfehler zu erhalten, während ich versuchte, die ARMV7 -Version mit meiner Nicht -ARMV7 -Bibliothek zu verknüpfen (mein Projekt ist mit dem Standard -Standard -ARMV6 -ARMV7 -Architekturen festgelegt):

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 --

Die ARMV6 -Version kompiliert gut, aber der Gesamtkompilierungsprozess schlägt mit 77 Linkfehlern fehl.

Ich verstehe, dass dies das erwartete Verhalten ist, es wird nicht mit ARMV6 Lib mit ARMV7 verknüpft. Das Fix besteht darin, mein Projekt nur auf ARMV6 zu setzen. Meine Frage hier ist: Warum funktionierte das in den vorherigen Versionen von Xcode?

Wenn ich nur auf ARMV6 gesetzt habe, bekomme ich diese Warnung:

Check dependencies

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

Ich mag es nicht, Warnungen zu sehen :-) Hat jemand ähnliche Probleme?

Vielen Dank,

Fernando

War es hilfreich?

Lösung

Ich habe gerade die aktive Architektur Build im Projekt -> Build -Einstellung -> Architekturen -Registerkarte.

Andere Tipps

In iOS SDK 4.3 sieht es so aus, als ob der Linker einfach eine ARMV6 -Bibliothek in einer ARMV7 -Binärdatum verwenden wird - dies war vorher nicht der Fall.

Deshalb musste ich die aktualisieren http://code.google.com/p/ios-static-library/ Projekt zum Generieren von ARMV6- und ARMV7 -Versionen der Bibliotheken.

Ich habe das Rahmen der Drittanbieter mit einigen Demo -Kursen in das Projekt hinzugefügt, aber sobald ich es erfolgreich implementiert habeFehler"Ld: ........., Datei ist universell, enthält aber keine (n) ARMV6 -Slice für Architektur armv6"

Nachdem ich einen ganzen Tag mit dem Kopf gekratzt hatte

Ziele-> "Ihr Projektziel"-> Info-> Erstellen Sie die aktive Architektur nur auf Ja eingestellt

Das ist es..

Hatte das gleiche Problem. Aber der Grund war anders. Ich habe die für Simulator erstellte Datei für Bibliothek verwendet und versuchte, sie auf dem Gerät auszuführen. Ich benötige verschiedene .a -Dateien für Simulator und Gerät. Ich hoffe das hilft jemandem;)

Obwohl ich immer noch nicht weiß, warum dies nur in der Endversion von Xcode 4 geschah, stellte ich fest, dass meine externen LIBs (SSL und Crypto) sowohl gegen ARMV6 als auch gegen ARMV7 im Google Code -Projekt vor wenigen Tagen zusammengestellt wurden:

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

Dadurch wird das Problem behoben, wenn Sie zwei verschiedene Bibliothekssuche definieren: einen für ARMV6, einen für ARMV7.

Vielen Dank,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top