2012-09-23 2 views
31

Ich bin Entwickler einer Drittanbieterbibliothek und möchte meine Bibliothek für armv7s neu kompilieren, aber ich habe Probleme.Kompilierbibliothek für armv7s - cputype (12) und cpusuxtype (11)

Ich aktualisierte xcode zu 4.5. Ich habe das Projekt und die zugehörigen Ziele aktualisiert, um gültige Architekturen von armv7 armv7s zu haben.

Allerdings, wenn ich file oder lipo -info ausführen, listet es

  • i386
  • ARMv7
  • (CPUTYPE (12) cpusubtype (11))

Keine armv7s. Fehle ich etwas?

+2

Meine beste Vermutung ist, dass Lipo nicht über armv7s nicht kennt. Vielleicht funktioniert path/to/xcode/Entwickler/Plattformen/iPhoneOS.platform/Entwickler/usr/bin/lipo besser? –

Antwort

62

Verwenden Xcode Lipo:

xcrun -sdk iphoneos lipo 
+1

Sieht aus wie es sein sollte: xcrun -sdk iphoneos lipo -info myLibrary.a –

+0

Danke! Das hat den Trick für mich gemacht. Der "normale" Lipo identifiziert armv7s als (cputype (12) cpusuxtype (11)). Also, wenn Sie versuchen, diesen Lipo mit den "-thin armv7s" zu laufen, wird ein Fehler geworfen. – runamok

1

lipo hat keine Definition für armv7s und deshalb können Sie den Namen nicht sehen, sondern nur den CPU-Typ und Subtyp. Also diese fette Binärdatei ist in Ordnung, nur müssen wir vielleicht warten, bis Apple seine Werkzeuge aktualisiert, wenn wir die neue Architektur manuell durcheinander bringen wollen (zum Beispiel gibt es momentan keine Möglichkeit, armv7s Slimbinary in eine fette Binärdatei manuell zu verschmelzen).

17

Anscheinend ist (cputype (12) cpusubtype (11)) eine andere Nomenklatur für Armv7s.

Sie können mehr hier beziehen: http://www.galloway.me.uk/2012/09/hacking-up-an-armv7s-library/

Das obige Blog beschreibt auch ein Verfahren zur Herstellung einiger Bibliotheken kompatibel armv7s bauen. Die Beschreibung von oben ist nahe dem Ende des Artikels, wo er über die Ausgabe von file Befehl erläutert.

Um einen Teil davon zu zitieren:

Innerhalb dieses Header ist ein Feld für den CPU Typen und die CPU-Subtyp (ein Mach-O-Header genannt). ARM ist CPU-Typ 12, ARMv7 ist CPU-Subtyp 9 und armv7s ist CPU-Subtyp 11.

Verwandte Themen