Ios 架构i386链接命令退出代码1的未定义符号
在构建模拟器时,我遇到了以下错误:Ios 架构i386链接命令退出代码1的未定义符号,ios,xcode,Ios,Xcode,在构建模拟器时,我遇到了以下错误: Undefined symbols for architecture armv7: "_OBJC_CLASS_$_SA_OAuthTwitterEngine", referenced from: objc-class-ref in NetworkUpdateViewController.o "_OBJC_CLASS_$_SA_OAuthTwitterController", referenced from: objc-class
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_SA_OAuthTwitterEngine", referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_SA_OAuthTwitterController", referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_MGTwitterEngine", referenced from:
objc-class-ref in TwitterLoginViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这是为本地设备(iPad)构建时的一个:
尝试了我能想到的一切。。。你能帮我个忙吗?在将错误放入可读的纯文本时,Clang非常有用,只是我们有时会着眼于全局而放弃。看这里:
"_OBJC_CLASS_$_SA_OAuthTwitterController"
现在去掉标准的_OBJC_CLASS_$part,你会得到什么<代码>SA_OAuthTwitterController
现在,第二部分:
... referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_SA_OAuthTwitterEngine", referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_MGTwitterEngine", referenced from:
objc-class-ref in TwitterLoginViewController.o
显然,您是在名为的类中引用这个不存在的头:NetworkUpdateViewController
和TwitterLoginView
现在,出现了两种可能性:要么你没有将正确的文件添加到编译源代码列表中,要么你碰巧使用了一个不是为iOS模拟器(架构i386)构建的框架(或者通常称为通用库)。在第一种情况下,找到有问题的实现文件并将它们拖到编译源代码列表中,然后构建并运行。如果是第二种情况,那么你必须在一台设备上进行测试,或者尝试将库重新编译到一个可用的通用库中,这比听起来更难。在将错误放入人类可读的纯文本中时,Clang非常好,只是我们有时会着眼于全局而放弃。看这里:
"_OBJC_CLASS_$_SA_OAuthTwitterController"
现在去掉标准的_OBJC_CLASS_$part,你会得到什么<代码>SA_OAuthTwitterController
现在,第二部分:
... referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_SA_OAuthTwitterEngine", referenced from:
objc-class-ref in NetworkUpdateViewController.o
"_OBJC_CLASS_$_MGTwitterEngine", referenced from:
objc-class-ref in TwitterLoginViewController.o
显然,您是在名为的类中引用这个不存在的头:NetworkUpdateViewController
和TwitterLoginView
现在,出现了两种可能性:要么你没有将正确的文件添加到编译源代码列表中,要么你碰巧使用了一个不是为iOS模拟器(架构i386)构建的框架(或者通常称为通用库)。在第一种情况下,找到有问题的实现文件并将它们拖到编译源代码列表中,然后构建并运行。如果是第二种情况,那么您必须在设备上进行测试,或者尝试将库重新编译到可用的通用库中,这比听起来更难。您认为如何?那么,您尝试了什么呢?那么,当您将
-v
添加到编译标志中时,它说了什么?您想到了什么?您尝试了什么?那么,当您将-v
添加到编译标志时,它说了什么?谢谢您的快速回复。已经做了,但没用。现在正在进行(2),重新编译库。-最终建造成功了!谢谢你的快速回复。已经做了,但没用。现在正在进行(2),重新编译库。-最终建造成功了!