在XCode 4项目中编译ZipArchive

时间:2011-04-13 06:31:03

标签: iphone xcode compression zip xcode4

我正在尝试使用我的项目编译ZipArchive。我导入了所有源文件,包括minizip文件,我无法理解这些错误。我已经尝试了十几种将压缩/解压缩结合到我的iphone项目中的方法,但都取得了成功。 ZipArchive似乎是最好的库,这个问题看起来像是一个简单的构建设置配置问题,但我无法弄明白。

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

5 个答案:

答案 0 :(得分:14)

我有完全相同的问题。我使用Xcode 4.4 for iOS 5.1。 我这样解决了:

  1. 删除所有ZipArchive-Files包含。项目中的Minizip-Folder - 移至垃圾箱。
  2. 重新添加ZipArchive文件和Minitip文件夹,并确保您选择“为任何添加的文件夹创建组”选项,而不是“为任何添加的文件夹创建文件夹引用”。
  3. 如果您使用ARC,则添加到所有构建阶段 - >编译源ZipArchive-Items选项“-fno-objc-arc”
  4. 就是这样 - 祝你好运。

答案 1 :(得分:2)

当我尝试它时,将使用以下链接轻松编译

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

我只是在下面的表单

中获取文件夹
ZipArchive 
   ZipArchive.h
   ZipArchive.mm
   minizip (Folder)

然后只需拖动&将ZipArchive文件夹放入xCode“Classes”。

然后添加框架libz.1.2.3.dylib。

就是这样。我的代码编译没有任何问题。

答案 2 :(得分:2)

我通过将“/usr/lib/libz.dylib”添加到项目设置的目标部分中的其他链接标志来实现它。

Minizip对我有用。

答案 3 :(得分:0)

我也陷入同样的​​情况......

但我发现了以下决议。

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

我这样解决了:

·将ZipArchive-Files和Minitip-Folder添加到项目中时, 你应该检查“如果需要复制项目”和“创建组”。

就是这样。

答案 4 :(得分:0)

I got this working by adding libz.tdb file. (Xcode 7, iOS 9). Error gone.