de erro quando zlib importação no iOS: Símbolo (s) não encontrado collect2: ld

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

  •  08-07-2019
  •  | 
  •  

Pergunta

Eu incluí <zlib.h> no meu aplicativo iPhone e o código fonte que eu estava zombando-se o código de exemplo de moléculas fornecido por Brad Larson, no entanto, quando eu construir o projeto, ele retorna o erro como abaixo. Pode qualquer um ponto para mim se isso é um problema que liga biblioteca ou estou faltando alguma coisa?

"_deflate", referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "_inflateEnd", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "inflateInit2", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_inflate", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_deflateEnd", 
referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "deflateInit2", referenced 
from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o ld: symbol(s) not found collect2: ld 
returned 1 exit status
Foi útil?

Solução

Em seu guia Build Settings da Target, desloque-se para a seção Other Linker Flags e certifique-se -lz está no campo. Isto irá ligar com o built-in zlib, e seu erro deve ir embora.

Depois de alterar as bandeiras Linker você deve selecionar Clean a partir do menu Product antes de construir novamente.

 lz imagem

Outras dicas

Adicionar libz ao seu projeto. Para fazer isso, siga estes passos no Xcode:

  1. Abra o seu projeto, selecione seu alvo do projeto e, em seguida, clique no ícone Informações azul projeto na barra de ferramentas (ou ?I imprensa)
    Exemplo 1
  2. Clique no botão + no canto inferior esquerdo da tela para adicionar uma biblioteca, role até a parte inferior da lista da biblioteca e selecione libz.dylib; clique no botão Adicionar.
    Exemplo 2
  3. Depois de clicar em Adicionar, você vai ver que o nome da biblioteca aparece em oyur lista de bibliotecas vinculadas. Agora você vai ser capaz de construir o seu projeto sem vincular erros.
    Exemplo 3

Você pode usar este mesmo método para adicionar qualquer biblioteca da lista. Se a biblioteca não aparecer na lista, então você sabe que não é parte do iPhone SDK padrão e pode ser necessário repensar a sua solução ou construir a biblioteca estaticamente si mesmo e ligar o seu alvo para que (se mesmo possível).

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