2011-04-13 62 views
8

我正试图用我的项目编译ZipArchive。我导入了所有的源文件,包括minizip文件,我不知道这些错误。我已经尝试了十几种其他方法将压缩/解压缩合并到我的iphone项目中,并且都取得了成功。 ZipArchive似乎是最好的库,这个问题看起来像是一个简单的构建设置配置问题,但我无法弄清楚。在XCode 4项目中编译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 
+0

你链接了libz.dylib吗? – Nyx0uf 2011-04-13 06:55:55

+0

@Benj是的。我尝试了libz.dylib和libz.1.2.3.dylib,没有任何效果。 – jakev 2011-04-13 07:03:56

+0

此外,我创建一个干净的项目并导入文件,链接到libz.dylib并获得相同的错误 - 所以我知道这不是我的项目。 – jakev 2011-04-13 07:05:54

回答

14

我有完全相同的问题。我使用iOS 5.1的Xcode 4.4。 我用这种方法解决了这个问题:

  1. 删除所有ZipArchive文件,来自您项目的Minizip-Folder - 移至垃圾箱。
  2. 重新添加ZipArchive文件和Minitip文件夹,并确保您选择“为所有添加的文件夹创建组”,而不是“为任何添加的文件夹创建文件夹引用”。
  3. 如果使用ARC,然后添加到所有构建阶段 - >编译源代码ZipArchive项选项 “-fno-objc弧”

That's它 - 好运气。

+0

我没有看过这个,因为我通过选择另一个解决方案解决了这个问题,但它听起来像你有最新的答案。 – jakev 2012-08-17 00:52:13

+0

这解决了我使用针对iOS 6的Xcode版本4.5.2(4G2008a)的ABC问题。 – 2013-01-09 18:24:34

+0

经过几天,我仍然无法得到这个血腥的工作。 ZipArchive是一个绝对的噩梦般的一周。一点都不开心。 – fuzz 2013-02-08 00:37:04

2

当我想它会很容易地与下面的链接编译

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

我只是把文件夹下面的表格

ZipArchive 
    ZipArchive.h 
    ZipArchive.mm 
    minizip (Folder) 

然后,只需拖动&下降ZipArchive文件夹中的Xcode “类”。

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

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

+0

尝试导入“ZipArchive/ZipArchive.h” – jakev 2011-04-13 07:19:12

+0

我已经导入“ZipArchive/ZipArchive.h”,然后取ZipArchive * zip = [[ZipArchive alloc] init];然后使用[zip CreateZipFile2:...];一切运作良好。我使用Xcode 3.2.5与iOS SDK 4.2 – 2011-04-13 07:28:04

+0

我使用Xcode 4.我终于得到它与导入编译,但只要我说ZipArchive * zip = [[ZipArchive alloc] init];它失败时会出现类似的错误(虽然只有其中一个,而不是16个)。我不知道我做了什么来改进它,但我仍然无法使用该库。 – jakev 2011-04-13 07:36:28

2

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

它用Minizip为我工作。

0

我也陷入这种同一案件....

但我发现了以下决议。

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

我解决这样说:

·当您添加ZipArchive档案和Minitip-文件夹到您的项目, 你应该检查“复制项目如果需要的话”和“创建组” 。

就是这样。

0

我通过添加libz.tdb文件得到了这个工作。 (Xcode 7,iOS 9)。错误消失了。

+0

我没有。你有没有处理任何特殊的步骤? – NovusMobile 2017-05-05 14:16:44