架构 armv7 的未定义符号:“_OBJC_CLASS_$_SSZipArchive”

Posted

技术标签:

【中文标题】架构 armv7 的未定义符号:“_OBJC_CLASS_$_SSZipArchive”【英文标题】:Undefined symbols for architecture armv7: "_OBJC_CLASS_$_SSZipArchive" 【发布时间】:2013-04-09 09:03:09 【问题描述】:

我正在尝试使用 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)

我尝试在这里解决问题:Undefined symbols for architecture 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)

【问题讨论】:

【参考方案1】:

转到 Project Settings>转到 Build Phases 选项卡,然后 Compile Sources 并确保将类拖到列表中。

【讨论】:

我可以拖动 SSZipArchive.m,因为文件夹是蓝色的。但我尝试添加,这会引发 16new 错误。他的!我会更新错误。请帮帮我 你只需要弄清楚你在这些“未定义符号”的解决方案中的情况......这里链接***.com/questions/6429494/… 应该没问题。【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

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

【讨论】:

感谢您的回答!但这是我第一次使用 iOS!你能告诉我更清楚地这样做吗?? 感谢您的回答!但这是我第一次使用 iOS!1=> 我不明白这个(我是初学者);2=> 我检查了很多时间这个案例;3=> 我不知道该怎么做对吗? ??请帮帮我。 嗨,你在你的项目中使用第三方库对吗? 第一个是例如你在任何类中使用该插件中可用的任何方法,如 first.h.. 在这个 first.h 文件中,您必须导入该库,如 #import"ExtraZipFilePlugin。 h"。 是的!我将库用于电话间隙的 ios,实际上我在 android 中制作应用程序很好。但是ios中的这个插件不起作用。在我的插件中 #import"ExtraZipFilePlugin.h" 在 ExtraZipFilePlugin.m 处导入

以上是关于架构 armv7 的未定义符号:“_OBJC_CLASS_$_SSZipArchive”的主要内容,如果未能解决你的问题,请参考以下文章

架构 armv7 的未定义符号

架构armv7的未定义符号?

XCode 5 - 架构 armv7 的未定义符号:

架构armv7的未定义符号?这个错误是啥意思?

架构 armv7 的未定义符号

架构 armv7 (WebRTC) 的未定义符号