errore durante l'importazione di zlib in iOS: simboli non trovati collect2: ld

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

  •  08-07-2019
  •  | 
  •  

Domanda

Ho incluso <zlib.h> nella mia applicazione per iPhone e il codice sorgente stavo deridendo il codice di esempio delle molecole fornito da Brad Larson, tuttavia, quando costruisco il progetto, restituisce l'errore come di seguito. Qualcuno può indicarmi se si tratta di un problema di collegamento alla libreria o mi manca qualcos'altro?

"_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
È stato utile?

Soluzione

Nella scheda Build Settings del Target, scorri verso il basso fino alla sezione Other Linker Flags e assicurati che -lz sia nel campo. Questo si collegherà allo zlib integrato e il tuo errore dovrebbe scomparire.

Dopo aver modificato le bandiere dei linker è necessario selezionare Clean dal menu Product prima di creare nuovamente.

 screenshot lz

Altri suggerimenti

Aggiungi libz al tuo progetto. Per fare ciò, segui questi passaggi in Xcode:

  1. Apri il tuo progetto, seleziona la destinazione del tuo progetto e quindi fai clic sull'icona blu delle informazioni sul progetto sulla barra degli strumenti (o premi & # 8984; I)
    Esempio 1
  2. Fai clic sul pulsante + nell'angolo in basso a sinistra dello schermo per aggiungere una libreria, scorri verso il basso fino alla fine dell'elenco delle librerie e seleziona libz.dylib; fai clic sul pulsante Aggiungi.
    Esempio 2
  3. Dopo aver fatto clic su Aggiungi, vedrai che il nome della libreria viene visualizzato nel tuo elenco di librerie collegate. Ora sarai in grado di costruire il tuo progetto senza collegare errori.
    Esempio 3

Puoi usare questo stesso metodo per aggiungere qualsiasi libreria dall'elenco. Se la libreria non appare nell'elenco, allora sai che non fa parte dell'SDK standard di iPhone e potresti dover ripensare la tua soluzione o creare la libreria staticamente da solo e collegare il tuo target a quello (se possibile).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top