Xcode编译Undefined symbols for architecture XXX报错

Undefined symbols for architecture armv7
Undefined symbols for architecture armv7s
Undefined symbols for architecture arm64
Undefined symbols for architecture i386
Undefined symbols for architecture x86_64

多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题:

Undefined symbols for architecture XXX:

"_OBJC_CLASS_$_xx文件名", referenced from:

大概有下面4种可能,前三种网上好多人都说过了,而其中第四种情况是最近刚刚被困绕过的,如果前三种方法都使用后也不能解决,可以考虑排查一下第四种可能;

1.相关工程文件未导入

 


你可以直接在这里+进来,也可以在左边工程目录中把文件全部重新导人一遍(多人操作工程时,一般这种解决办法)

2..framework文件未导入

 


把xx文件库+进来,本问题"_OBJC_CLASS_$_ASIdentifierManager", 就是因为AdSupport.Framework类库未加

3.文件路径缺失

 

检查是否某些文件路径未加入进来或者写错了

4.所提示的文件内创建了未实现的类的对象

这种情况多是由于编码人员失误造成的,只在.h文件中声明了函数或类,但未在对应的.m或.cpp文件中实现;

排查的话可以查看一下代码,或者分段注释一下可疑部分,看看是否还会提示,修正一般很容易,但就是这样的编译错误提示很难联想到。

时间: 2024-08-03 20:16:24

Xcode编译Undefined symbols for architecture XXX报错的相关文章

Xcode编译Undefined symbols for architecture xxx 错误总结

每次遇到这种错误就头痛,不知道要害死多少脑细胞了,就在这里做个总结吧 可能会遇到这几种错误:Undefined symbols for architecture armv7Undefined symbols for architecture armv7sUndefined symbols for architecture arm64Undefined symbols for architecture i386Undefined symbols for architecture x86_64 错误

解决Undefined symbols for architecture x86_64: 报错 和 ld: warning: ld: warning: ignoring file警告

出现这种错误的情况: 用iphone5模拟器编译程序正常, 用iphone5s以上的模拟器编译出现Undefined symbols for architecture x86_64: 报错 和 ld: warning: ld: warning: ignoring file警告, 用真机编译正常... 网上找了很多解决方法都没办法解决..都是说更改bulid setting的一些相关设置..然后都木有什么卵用... 这里附上我的解决方法..其实也不是很麻烦...(我没有更改bulid settin

ios build时,Undefined symbols for architecture xxx问题的总结

这2天升级到xcode6,用ios8 SDK编译老项目,各种Undefined symbols for architecture xxx,精神差点崩溃了.不过最后还是解决了,本文简单总结一下 简单来说,Undefined symbols基本上等于JAVA的ClassNotFoundException,最常见的原因有这几种: build的时候没有加framework 比如说,有一段代码我用了OpenGL,引入了头文件 #import <OpenGLES/ES2/glext.h> build的时候

Undefined symbols for architecture xxx,出错总结

简单来说,Undefined symbols基本上等于JAVA的ClassNotFoundException,最常见的原因有这几种: 1.build的时候没有加framework build的时候,compile阶段没有问题,但是link就报错Undefined symbols for architecture xxx(这里xxx可能是armv7s,armv7或者arm64,取决于配置,稍后会说).解决方法是在Build Phases的Link Binary With Libraries里加入x

iOS Undefined symbols for architecture xxx问题的总结

今天项目刚更换了最新的播放器,结果在touch上build时遇到了Undefined symbols for architecture armv7的问题,在5s跟6上没有问题.之前就不少次遇到过这样的问题,都是匆匆解决了然后继续修复别的bug,今天看到了一篇讲的还算比较细的博客,就顺手拿了过来,之后在补充结合自己项目的理解吧. 以下为引用内容:原文链接http://www.th7.cn/Program/IOS/201410/296636.shtml 简单来说,Undefined symbols基

iOS 编译Undefined symbols报错问题

最常见的原因有这几种: 1 build的时候没有加framework 比如说,有一段代码我用了OpenGL,引入了头文件 #import <OpenGLES/ES2/glext.h> build的时候,compile阶段没有问题,但是link就报错Undefined symbols for architecture xxx(这里xxx可能是armv7s,armv7或者arm64,取决于配置,稍后会说).解决方法是在Build Phases的Link Binary With Libraries里

XCode 6.4编译错误----Undefined symbols for architecture i386: &quot;_fwrite$UNIX2003&quot;

使用xcode在模拟器iphone4s和iphone5出现错误 编译时的错误描述: Undefined symbols for architecture i386: "_fwrite$UNIX2003", referenced from: 一开始感觉是.a文件没有单独编译i386,x86_64导致,重新编译后 lipo -info xxxx.a 发现.a文件即使支持i386,x86_64,但还是编译不通过. 网上查了一些资料后,发现解需要在工程中添加一个.c 文件 #include &

xcode编译出错:Undefined symbols for architecture armv7

在xcode中编译oc和c++代码时出现如下错误: Undefined symbols for architecture armv7 "std::basic_ostream<char, std::char_traits<char> >& std::operator<<<char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<

mac编译openresty报Undefined symbols for architecture x86_64

./configure --prefix=/usr/local/openresty --with-luajit --with-http_sub_module --add-module=../ngx_http_substitutions_filter_module-0.6.4 make时报错如下 -Wl,-rpath,/usr/local/openresty/luajit/lib -L/Applications/ngx_openresty-1.4.3.6/build/luajit-root/usr