de erro quando zlib importação no iOS: Símbolo (s) não encontrado collect2: ld
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
Solução
Outras dicas
Adicionar libz ao seu projeto. Para fazer isso, siga estes passos no Xcode:
- 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)
- 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.
- 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.
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).