iphone Simulator: „libpng.dylib, Datei ist nicht die erforderliche Architektur“

StackOverflow https://stackoverflow.com/questions/1806469

  •  05-07-2019
  •  | 
  •  

Frage

Ich versuche, die libpng Bibliothek zu meiner iPhone Anwendung zu verknüpfen, und immer diese Fehlermeldung:

ld: warning: in /opt/local/lib/libpng.dylib, file is not of required architecture

Dies geschieht, wenn ich für den Simulator oder das Gerät zu bauen.

Wenn ich aber eine Konsolenanwendung bauen, kann ich Link in libpng gut.

Was mache ich falsch? Gibt es eine andere libpng.dylib ich für iphone Entwicklung verwenden?

War es hilfreich?

Lösung

Als Chris Long sagt, ist libpng auf dem iPhone nicht verfügbar. Sie können es in Ihr Projekt kompilieren (wenn es für ARM kompiliert), ist es sonst keine workums. Hier ist eine Führung: http: // www.cloudgoessocial.net/2009/06/09/imagemagick-on-iphone-with-jpeg-png/

Auch für die Aufzeichnung können Sie eine UIImage schreiben als png nativ mit: UIImagePNGRepresentation(UIImage *image)

Andere Tipps

Sie können nicht dylibs auf dem iPhone verwenden, müssen Sie es statisch kompilieren. Having said that, sehen die Fehler, den Sie anderes Thema ist.

Entwickeln Sie Snow Leopard auf? Wenn ja, dann dann Sie die Standard-Bibliothek aufgebaut ist wahrscheinlich 64 Bit. Der Simulator erfordert 32-Bit-Bibliotheken. Sie können dagegen durch Ausführen von Datei überprüfen:

file /opt/local/lib/libpng.dylib

Wenn Sie nicht sehen, so etwas wie:

(for architecture i386):    Mach-O dynamically linked shared library i386

Dann werden Sie nicht in der Lage sein, es wieder zu verwenden. Erstellen Sie die Bibliothek als eine statische i386 lib und Sie sollten in der Lage, es in den Simulator zu verwenden. Wenn es ein autoconf basiertes Build dieser Blog-Post ist erklärt, wie ein Build zu tun und hat Shell-Skript die Sie verwenden können.

Ist das ein libpng.dylib Sie aus dem Internet heruntergeladen? iPhone-Entwickler sind nicht erlaubt außerhalb dynamische Bibliotheken zu verwenden.

Ich weiß nicht, ob libpng verfügbar ist, aber hier ist, wie zu überprüfen.

  1. Doppelklicken Sie auf Ihrem App-Namen in der Ziele-Liste.
  2. Klicken Sie auf die Plus-Schaltfläche unter der Frameworks Liste und versuchen, sie zu finden. Vergessen Sie nicht, dass Namen in Kleinbuchstaben erscheinen nach „Z“.

Wenn es nicht vorhanden ist, können Sie es nicht verwenden. Versuchen Sie, eine statische Bibliothek zu finden, und kompilieren Sie es aus der Quelle. Es muss sowohl speziell für kompiliert wird die Architektur des iPhone Simulator (Intel) und iPhone (ARM).

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