2010-08-20 90 views
6

我已經當根據http://code.google.com/p/ziparchive/wiki/PageName編譯ZipArchive庫編譯錯誤

"_OBJC_CLASS_$_ZipArchive", referenced from: 

UPDATE

包括 libz.1.2.3.dylib

插入碼之後

ZipArchive* za = [[ZipArchive alloc] init]; 

錯誤

我已經包括ZipArchive文件夾來投影,和框架libz.1.2.3.dylib。

然後我嘗試解壓iphone上的文件,但它錯誤的框架。如何解決它?

Ld build/ePUBreader.build/Debug-iphoneos/ePUBreader.build/Objects-normal/armv7/ePUBreader normal armv7 
cd /Users/ragopor/Desktop/ePUBreader 
setenv IPHONEOS_DEPLOYMENT_TARGET 4.0 
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk -L/Users/ragopor/Desktop/ePUBreader/build/Debug-iphoneos -F/Users/ragopor/Desktop/ePUBreader/build/Debug-iphoneos -filelist /Users/ragopor/Desktop/ePUBreader/build/ePUBreader.build/Debug-iphoneos/ePUBreader.build/Objects-normal/armv7/ePUBreader.LinkFileList -dead_strip -miphoneos-version-min=4.0 -framework Foundation -framework UIKit -framework CoreGraphics -framework StoreKit -lz.1.2.3 -o /Users/ragopor/Desktop/ePUBreader/build/ePUBreader.build/Debug-iphoneos/ePUBreader.build/Objects-normal/armv7/ePUBreader 

Undefined symbols: 
    "_OBJC_CLASS_$_ZipArchive", referenced from: 
     objc-class-ref-to-ZipArchive in ePUBreaderAppDelegate.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
+0

我有類似的問題。你能解決這個問題嗎? – 2010-10-17 21:25:02

回答

3

將ZipArchive文件夾拖到項目中時,必須選擇「爲所添加的文件夾創建組」,而不是「爲任何添加的文件夾創建文件夾引用」。如果選擇後者,則會從鏈接器中獲取「未定義符號」錯誤。

0

ZipArchive不在libz.dylib中。 ZipArchive應該來自哪裏?它沒有被編譯或鏈接到您的應用程序。

+0

我已更新我的詳細資料 – RAGOpoR 2010-08-20 05:18:23

0

你說你已經將ZipArchive文件夾添加到項目中。根據你的描述,似乎在編譯項目時發現頭文件ZipArchive.h,但它不編譯ZipArchive.mm文件,該文件包含ZipArchive類。

文件擴展名.mm對我來說似乎很陌生。這可能是該文件沒有編譯的原因。嘗試將其重命名爲ZipArchive.m並重試。

+0

.mm是完全正常的,通常用於Objective-C++編寫的實現文件中 – Rog 2011-08-14 11:35:54

+0

是的,但它似乎從未添加到項目中。 – Codo 2011-08-14 11:49:02

7

然後只需拖動&下降ZipArchive文件夾中的Xcode的 「類」。

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

就是這樣。我的代碼編譯沒有任何問題。