simulateur d'iphone: “libpng.dylib, le fichier n'est pas de l'architecture requise”

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

  •  05-07-2019
  •  | 
  •  

Question

J'essaie de lier la bibliothèque libpng à mon application iPhone et j'obtiens l'erreur suivante:

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

Cela se produit lorsque je crée pour le simulateur ou le périphérique.

Cependant, lorsque je construis une application console, je peux très bien créer un lien dans libpng.

Qu'est-ce que je fais mal? Existe-t-il un libpng.dylib différent dont j'ai besoin pour le développement sur iphone?

Était-ce utile?

La solution

Comme le dit Chris Long, libpng n’est pas disponible sur l’iphone. Vous pouvez le compiler dans votre projet (s’il compilera pour ARM), sinon c’est inutile. Voici une piste: http: // www.cloudgoessocial.net/2009/06/09/imagemagick-on-iphone-with-jpeg-png/

De plus, pour l'enregistrement, vous pouvez écrire un UIImage en tant que png en utilisant: UIImagePNGRepresentation (UIImage * image)

Autres conseils

Vous ne pouvez pas utiliser Dylibs sur iPhone, vous devrez le compiler de manière statique. Cela dit, l’erreur que vous constatez est un problème distinct.

Vous développez sur Snow Leopard? Si c'est le cas, la bibliothèque par défaut que vous avez construite est probablement 64 bits. Le simulateur nécessite des bibliothèques 32 bits. Vous pouvez vérifier en exécutant le fichier par rapport à celui-ci:

file /opt/local/lib/libpng.dylib

Si vous ne voyez pas quelque chose comme:

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

Ensuite, vous ne pourrez pas le réutiliser. Reconstruisez la bibliothèque en tant que bibliothèque statique i386 et vous devriez pouvoir l'utiliser dans le simulateur. S'il s'agit d'une version basée sur autoconf, ce billet de blog explique comment créer une version et un script shell. que vous pouvez utiliser.

S'agit-il d'un libpng.dylib que vous avez téléchargé sur Internet? Les développeurs iPhone ne sont pas autorisés à utiliser des bibliothèques dynamiques externes.

Je ne sais pas si libpng est disponible, mais voici comment vérifier.

  1. Double-cliquez sur le nom de votre application dans la liste des cibles.
  2. Cliquez sur le bouton Plus sous la liste Frameworks et essayez de le trouver. N'oubliez pas que les noms en minuscules apparaissent après "Z".

Si ce n'est pas là, vous ne pouvez pas l'utiliser. Essayez de trouver une bibliothèque statique et compilez-la à partir des sources. Il doit être compilé spécifiquement pour l'architecture du simulateur iPhone (Intel) et de l'iPhone (ARM).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top