2011-04-13 66 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