Xcode target build settings Architectures

先介绍一下 arm

Arm处理器,因为其低功耗和小尺寸而闻名,几乎所有的手机处理器都基于arm,其在嵌入式系统中的应用非常广泛,它的性能在同等功耗产品中也很出色。
Armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容的,如iPhone4S的CPU默认指令集为armv7指令集,但它同时也兼容armv6指令集,只是使用armv6指令集时无法充分发挥其性能,即无法使用armv7指令集中的新特性,同理,iPhone5的处理器标配armv7s指令集,同时也支持armv7指令集,只是无法进行相关的性能优化,从而导致程序的执行效率没那么高。
需要注意的是iOS模拟器没有运行arm指令集,编译运行的是x86指令集,所以,只有在iOS设备上,才会执行设备对应的arm指令集。
//关于Build Active Architecture Only属性
这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。

编译出的版本是向下兼容的,比如你设置此值为yes,用iphone4编译出来的是armv7版本的,iphone5也可以运行,但是armv6的设备就不能运行。

所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备
//xcode报错问题
//例如:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

 1. Targets—>Build Settings—>Architectures—>Other,修改为$(ARCHS_STANDARD_32_BIT) 
 2. TARGETS->Build Setting -> Architectures ->Valid Architectures 改为 armv7 armv7s 3. 如果还不行把Build Active Architecture Only 改成No
目前IOS的指令集

armv6    iPhone、iPhone2、iPhone3G、第一代和第二代iPod Touch

armv7    iPhone4、iPhone4S

armv7s   iPhone5、iPhone5C

arm64    iPhone5S

详细请看 : http://www.cnblogs.com/meteoric_cry/p/3720831.html
http://www.cnblogs.com/mylizh/p/3971579.html?utm_source=tuicool&utm_medium=referral

你可能感兴趣的:(xcode报错)