8 Stimmen

Kompilieren von ZipArchive in einem XCode 4-Projekt

Ich versuche, ZipArchive mit meinem Projekt zu kompilieren. Ich habe alle Quelldateien importiert, einschließlich der Minizip-Dateien, und ich weiß nicht, wie ich diese Fehler verstehen soll. Ich habe ein Dutzend anderer Möglichkeiten ausprobiert, um die Komprimierung/Dekomprimierung in mein iPhone-Projekt einzubinden, alles ohne Erfolg. ZipArchive scheint die beste Bibliothek aus, und dieses Problem sieht aus wie es ist ein einfaches Build-Einstellungen Konfiguration Problem, aber ich kann es nicht herausfinden.

Undefined symbols for architecture armv6:
  "_zipClose", referenced from:
      -[ZipArchive CloseZipFile2] in ZipArchive.o
  "_zipOpenNewFileInZip3", referenced from:
      -[ZipArchive addFileToZip:newname:] in ZipArchive.o
  "_unzOpenCurrentFile", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_unzGetGlobalInfo", referenced from:
      -[ZipArchive UnzipOpenFile:] in ZipArchive.o
  "_unzReadCurrentFile", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_unzOpen", referenced from:
      -[ZipArchive UnzipOpenFile:] in ZipArchive.o
  "_unzCloseCurrentFile", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_zipWriteInFileInZip", referenced from:
      -[ZipArchive addFileToZip:newname:] in ZipArchive.o
  "_zipOpenNewFileInZip", referenced from:
      -[ZipArchive addFileToZip:newname:] in ZipArchive.o
  "_unzGoToFirstFile", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_unzGetCurrentFileInfo", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_zipCloseFileInZip", referenced from:
      -[ZipArchive addFileToZip:newname:] in ZipArchive.o
  "_unzClose", referenced from:
      -[ZipArchive UnzipCloseFile] in ZipArchive.o
  "_zipOpen", referenced from:
      -[ZipArchive CreateZipFile2:] in ZipArchive.o
  "_unzGoToNextFile", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
  "_unzOpenCurrentFilePassword", referenced from:
      -[ZipArchive UnzipFileTo:overWrite:] in ZipArchive.o
ld: symbol(s) not found for architecture armv6
collect2: ld returned 1 exit status

14voto

Dominic Sander Punkte 2704

Ich hatte genau das gleiche Problem. Ich verwende Xcode 4.4 für iOS 5.1. Und ich löste es auf diese Weise:

  1. Entfernen Sie alle ZipArchiv-Dateien inkl. Minizip-Ordner aus Ihrem Projekt - in den Papierkorb verschieben.
  2. Fügen Sie sowohl ZipArchive-Files als auch den Minitip-Ordner erneut hinzu und stellen Sie sicher, dass Sie die Option "Gruppen für jeden hinzugefügten Ordner erstellen" anstelle von "Ordnerverweise für jeden hinzugefügten Ordner erstellen" wählen.
  3. wenn Sie ARC verwenden, dann fügen Sie zu allen Build-Phasen -> Compile Sources ZipArchive-Items die Option "-fno-objc-arc" hinzu

Das war's - viel Glück.

2voto

Wenn ich versucht, es wird leicht mit folgenden Link kompiliert

http://code.google.com/p/ziparchive/wiki/PageName

Ich nehme einfach Ordner in folgender Form

ZipArchive 
   ZipArchive.h
   ZipArchive.mm
   minizip (Folder)

Ziehen Sie dann einfach den ZipArchive-Ordner per Drag & Drop in den xCode-Bereich "Classes".

Fügen Sie dann das Framework libz.1.2.3.dylib hinzu.

Das war's. Mein Code wird ohne Probleme kompiliert.

2voto

sixFingers Punkte 1245

Ich habe es zum Laufen gebracht, indem ich "/usr/lib/libz.dylib" zu den anderen Link-Flags im Abschnitt Ziele der Projekteinstellungen hinzugefügt habe.

Bei mir hat es mit Minizip funktioniert.

0voto

Ich bin auch in diesen Fall geraten....

Aber ich habe die folgende Lösung gefunden.

http://travitu.hatenablog.jp/entry/2014/12/23/005037

Ich habe es auf diese Weise gelöst:

Wenn Sie ZipArchive-Files und den Minitip-Ordner zu Ihrem Projekt hinzufügen, sollten Sie "Elemente bei Bedarf kopieren" und "Gruppen erstellen" aktivieren.

Das ist alles.

0voto

Ich habe dies durch Hinzufügen von libz.tdb Datei funktioniert. (Xcode 7, iOS 9). Fehler weg.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X