simulador do iPhone: “libpng.dylib, arquivo não é da arquitetura necessária”

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Eu estou tentando vincular a biblioteca libpng a minha aplicação do iPhone, e recebendo este erro:

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

Isso acontece quando eu construir para o simulador ou dispositivo.

Quando eu construir um aplicativo de console no entanto, posso ligar no libpng muito bem.

O que estou fazendo de errado? Existe uma libpng.dylib diferente eu preciso usar para o desenvolvimento iphone?

Foi útil?

Solução

Como diz Chris Long, libpng não está disponível no iPhone. Você pode compilá-lo em seu projeto (se ele irá compilar para ARM), caso contrário ele não workums. Aqui é uma vantagem: http: // www.cloudgoessocial.net/2009/06/09/imagemagick-on-iphone-with-jpeg-png/

Além disso, para o registro, você pode escrever um UIImage como png nativamente usando: UIImagePNGRepresentation(UIImage *image)

Outras dicas

Você não pode usar dylibs no iPhone, você terá que compilá-lo estaticamente. Dito isto, o erro que você está vendo é uma questão separada.

Você está desenvolvendo no Snow Leopard? Se sim, então, em seguida, a biblioteca padrão que você construiu é provável de 64 bits. O simulador requer 32 bits bibliotecas. Você pode verificar executando arquivo contra ele:

file /opt/local/lib/libpng.dylib

Se você não vê algo como:

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

Em seguida, você não será capaz de reutilizá-lo. Reconstruir a biblioteca como um lib i386 estática e você deve ser capaz de usá-lo no simulador. Se é uma compilação com base autoconf este post explica como fazer uma compilação e tem script shell que você pode usar.

É este um libpng.dylib você baixou da Internet? iPhone desenvolvedores não estão autorizados a usar bibliotecas dinâmicas externas.

Eu não sei se libpng está disponível, mas aqui está como verificar.

  1. Clique duas vezes em seu nome do aplicativo na lista de alvos.
  2. Clique no botão de adição abaixo da lista Frameworks e tentar encontrá-lo. Não se esqueça que os nomes de minúsculas aparecer após "Z".

Se ele não estiver lá, você não pode usá-lo. Tente encontrar uma biblioteca estática e compilá-lo a partir da fonte. Tem que ser compilado especificamente para a arquitetura do iPhone Simulator (Intel) e iPhone (ARM).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top