Frage

Ich habe <zlib.h> in meiner iPhone-Anwendung enthalten und die Quellcode ich den Beispielcode von Molekülen durch Brad Larson, jedoch unter der Voraussetzung spöttisch auf, wenn ich das Projekt erstellen, es gibt den Fehler als unten. Kann jemand für mich darauf hinweisen, ob dies eine Bibliothek Verknüpfung Problem ist, oder bin ich etwas anderes fehlt?

"_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
War es hilfreich?

Lösung

In Ihrem Ziel Build Settings Registerkarte navigieren Sie zu dem Other Linker Flags Abschnitt nach unten und stellen Sie sicher, -lz im Feld ist. Dies wird verlinkt gegen die eingebaute in zlib und Ihre Fehler sollte verschwinden.

Nach den Linker Flags ändern Sie müssen Clean vom Product Menü wählen, bevor sie wieder aufzubauen.

 lz Screenshot

Andere Tipps

In libz zu Ihrem Projekt. Gehen Sie hierzu folgendermaßen vor in Xcode:

  1. Öffnen Sie Ihr Projekt, wählen Sie Ihr Ziel-Projekt, und klicken Sie dann auf den blauen Projektinfo-Symbol in der Symbolleiste (oder drücken Sie ⌘I)
    Beispiel 1
  2. Klicken Sie auf die Schaltfläche + in der unteren linken Ecke des Bildschirms eine Bibliothek hinzuzufügen, navigieren Sie zu der Unterseite der Bibliotheksliste und wählen Sie libz.dylib nach unten; klicken Sie auf die Schaltfläche Hinzufügen.
    Beispiel 2
  3. Sobald Sie Add geklickt haben, werden Sie sehen, dass der Name der Bibliothek in oyur Liste der verknüpften Bibliotheken angezeigt. Sie werden nun in der Lage sein, Ihr Projekt zu bauen, ohne Fehler zu verknüpfen.
    Beispiel 3

Sie können diese gleiche Methode verwenden, jede Bibliothek aus der Liste hinzuzufügen. Wenn die Bibliothek nicht auf der Liste erscheint, dann wissen Sie, dass es nicht Teil des Standard-iPhone SDK ist und Sie können Ihre Lösung zu überdenken müssen oder die Bibliothek statisch selbst bauen und verknüpfen Sie Ihr Ziel, dass (wenn überhaupt möglich).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top