Undefined symbols for architecture x86_64/armv7 解决方法

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


我相信你看到我这篇文章时,已经看到了很多这个问题的解决方法,我写这篇文章希望是终结问题的最后一篇。

这个问题主要是由于Xcode在编译时,没有找到相应的文件或者类库造成的。

那如何解决,解决方法网上太多了,我一开始就被百度上的各种解决方法所迷惑,全部都试了,还是不行。最后,我终于把注意力集中在了错误信息上,终于发现:

原来是人家说的很明白:Undefined symbols for architecture x86_64:"_OBJC_CLASS_$_CABasicAnimation",CABasicAnimation这个类Xcode不识别,CABasicAnimation在QuartzCore framework中,那么添加QuartzCore试一试,果然,问题解决了。

由此总结这个问题的处理方法:还是要看你报错的信息,由报错信息找到缺少的引用文件或类库,这才是通解

网上的各个博客的博主的处理方法大多都只适应他们的情况,如果盲目试了他们的方法,即使问题得到解决,也是有风险的,比如有的建议进入Build Settings 找到Architectures 选择Standard architectures找到Valid Architectures选择armv7和armv7s两项,其余删除,这可以看出是那位博主的第三方类库由于不兼容64位指令集的问题,应该找第三方类库支持64位的版本,这种处理方法显然不是最佳的。


你可能感兴趣的:(iOS,Undefined,symbols,fo,armv7,x86_64,architecture,x86_64,architecture,armv7)