0

我正在尝试在此使用 Extractzipfile 插件:https ://github.com/phonegap/phonegap-plugins/tree/master/iOS/ExtractZipFile

但是当我在 sdk 6.1 中使用 Xcode 4.6.1 编译时,它会引发错误:

 Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_SSZipArchive", referenced from:
        objc-class-ref in ExtractZipFilePlugin.o
  ld: symbol(s) not found for architecture i386
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试在这里解决问题:架构 armv7 SSZipArchive 的未定义符号

但它显示了另一个错误:

/Users/alienware/Desktop/ExtractZipFile/SSZipArchive/Tests/SSZipArchiveTests.m:10:9:找不到“SenTestingKit/SenTestingKit.h”文件

我使用 phonegap 并在 iOS 中制作应用程序,我很垃圾。

更新:我尝试将 SSZipArchive.m 添加到编译器源中,这出现了新错误:

Undefined symbols for architecture i386:
"_unzClose", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzCloseCurrentFile", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzGetCurrentFileInfo", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzGetGlobalInfo", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzGoToFirstFile", referenced from:
  +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzGoToNextFile", referenced from:
  +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
  "_unzOpen", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzOpenCurrentFile", referenced from:
  +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzOpenCurrentFilePassword", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_unzReadCurrentFile", referenced from:
    +[SSZipArchive unzipFileAtPath:toDestination:overwrite:password:error:delegate:] in SSZipArchive.o
"_zipClose", referenced from:
    -[SSZipArchive close] in SSZipArchive.o
"_zipCloseFileInZip", referenced from:
    -[SSZipArchive writeFile:] in SSZipArchive.o
    -[SSZipArchive writeData:filename:] in SSZipArchive.o
"_zipOpen", referenced from:
    -[SSZipArchive open] in SSZipArchive.o
"_zipOpenNewFileInZip", referenced from:
    -[SSZipArchive writeFile:] in SSZipArchive.o
    -[SSZipArchive writeData:filename:] in SSZipArchive.o
"_zipWriteInFileInZip", referenced from:
    -[SSZipArchive writeFile:] in SSZipArchive.o
    -[SSZipArchive writeData:filename:] in SSZipArchive.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
4

3 回答 3

4

转到项目设置>转到构建阶段选项卡,然后编译源并确保将类拖到列表中。

于 2013-04-09T09:12:36.547 回答
1

我有同样的问题,这就是你必须做的。在您的项目中,创建您自己的名为 SSZipArchive 的组(文件夹)并将 2 个主要类文件拖放到其中。然后在 SSZipArchive 中,创建一个名为 minizip 的子文件夹,现在将 minizip 中的文件拖放到此文件夹中。基本上,源代码中的文件夹需要手动创建...

于 2015-05-21T02:04:22.147 回答
0

嗨,据我所知,由于以下任何原因,都会发生此错误

1.如果您忘记在 VC 类中导入任何库。2.忘记在项目中添加所需的库。3.忘记正确设置标题搜索(意味着您添加了正确的Extractzipfile插件,因此显然您必须在项目中获取此库的路径并且必须在标题搜索路径中设置)

所以请检查这些东西。一切顺利。

于 2013-04-09T09:16:28.153 回答