Undefined symbols for architecture x86_64 解決之道

目前臨時的解決辦法是 ios

1.把1.選中Targets—>Build Settings—>Architectures。app

把build active architectures only 改成 NO。iphone

2. 把最下面的Valid Architectures中的arm64參數刪掉就能夠了ui

或者:spa

  雙擊Architectures,選擇other,刪除$(ARCH_STANDARD),而後增長armv7和armv7s(寫上:armv7和armv7s) 即 :armv7和armv7s $(ARCHS_STANDARD_32_BIT).net

 

ios的指令集有如下幾種:blog

 

1,armv6,支撐的機械iPhone,iPhone2,iPhone3G及對應的iTouchip

2,armv7,支撐的機械iPhone4,iPhone4Sget

3,armv7s,支撐的機械iPhone5,iPhone5Cit

4,arm64,支撐的機械:iPhone5S

機械對指令集的支撐是向下兼容的,是以armv7的指令集是能夠運行在iphone5S的,只是效力沒那麼高罷了~

Architecture : 指你想支撐的指令集。

Valid architectures : 指即將編譯的指令集。

Build Active Architecture Only : 只是否只編譯當前實用的指令集。

========

現在是2014年初,其實4和4S的用戶仍是蠻多的,而iphone3之類的機械幾乎沒有了,因此咱們的指令集最低必須基於armv7.

是以,Architecture的值選擇:armv7 armv7s arm64(選arm64時需要最低支撐5.1.1,這塊不太熟悉打聽)

1,如果想自己的app在各個機械均可以或許最高效力的運行,則需要將Build Active Architecture Only改成NO,Valid architectures選擇對應的指令集:armv7 armv7s arm64。這個會爲各個指令集編譯對應的代碼,是以最後的 ipa體積根蒂根基翻了3倍。(如果不在意app大小的話,應當如許作)

 

,如果想讓app體積對峙最小,則現階段應當選擇Valid architectures爲armv7,如許Build Active Architecture Only選YES或NO就無所謂了

相關文章
相關標籤/搜索