编译报错:Undefined symbols for architecture x86_64

来源:互联网 发布:海信ip906h安装软件 编辑:程序博客网 时间:2024/05/19 17:47

有时候,一个好端端的工程, 在编译时,莫名其妙地报错,而且是一片红。看上去挺吓人的。 仔细看, 报错内容是: Undefined symbols for architecture x86_64


好神秘哦。 这些报错,通常是由于集成了第三方SDK造成的。 比如: 集成了 微信分享、地图等。 这还得从Xcode版本的升级说起。 Xcode升级到5.1 新特性之一就是默认让所有App都通过64位编译器编译。原来在Xcode5.0.x的时候默认的Standard architectures只有(arm7,armv7s),到5.1之后默认就带上arm64的参数了。

目前临时的解决办法是 
1. 选中Targets—>Build Settings—>Architectures。
   把build active architectures only 改为 NO。

2. 把最下面的Valid Architectures中的arm64参数删掉就可以了
   或者:
   双击Architectures,选择other,删除$(ARCH_STANDARD),然后增加armv7和armv7s(写上:$(ARCHS_STANDARD_32_BIT))。


小结:
既然这种编译错误来源于 第三方SDK, 如果用以上方法解决了 编译报错问题,一定要在 iOS设备上验证 这些SDK 是否能正常工作,以免编译OK了,但功能反倒不能用了。  

0 0
原创粉丝点击