一.是什么?
CPU架構(gòu)是CPU廠商給屬于同一系列的CPU產(chǎn)品定的一個(gè)規(guī)范崖瞭,主要目的是為了區(qū)分不同類型CPU的重要標(biāo)示读跷。
二.種類
ARM公司: arm架構(gòu)
intel公司: intelx86系列架構(gòu)
AMD公司: amdx86系列架構(gòu)
電腦: 一般是x86 / x64
手機(jī): 一般是arm (微處理器,功耗低,體積小)
32位: intel的x86系列 / ARM的armv7 armv7s系列
64位: intel的x64系列 / ARM的arm64系列
三.iOS手機(jī)支持類型
arm64:iPhone5S| iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone3GS|iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
armv6 設(shè)備: iPhone, iPhone2, iPhone3G, 第一代胯陋、第二代 iPod Touch(一般不需要去支持)
四.查看靜態(tài)庫/動(dòng)態(tài)庫的CPU指令集
進(jìn)入動(dòng)態(tài)庫文件夾下.使用lipo -info命令
動(dòng)態(tài)庫和靜態(tài)庫都是一樣的命令.
只是動(dòng)態(tài)庫是查看GXHome.framework文件夾下的GXHome可執(zhí)行文件
靜態(tài)庫是查看GXHome.a文件
五.查看靜態(tài)庫/動(dòng)態(tài)庫的
查看該靜態(tài)庫/動(dòng)態(tài)庫的符號表 (所謂符號.即函數(shù)/全局變量.)
六.常識
X86-64簡稱x64. 都是64位的.
X86-32簡稱x86,是一個(gè)系列(如80186,80286,80386) .都是32位的.
- i386: 即intel80386.是intel公司的一款x86系列CPU.發(fā)布于1985年10月17日.將PC從16位時(shí)代帶入了32位時(shí)代.
七.解決問題
問題一.undefined symbols for architecture x86_64
沒有定義x86_64指令集下的GXPhoneTouchEventVCTest符號表.
這個(gè)時(shí)候就可以進(jìn)行一下步驟去排查錯(cuò)誤.
步驟1.使用lipo -info 命令去查看這個(gè)動(dòng)態(tài)庫/靜態(tài)庫是否包含了x86_64的指令集.
如果沒有.就在Xcode -> Build Settings -> Architectures -> 里查看是否沒加上x86_64這個(gè)指令集
步驟2.使用nm命令查看這個(gè)動(dòng)態(tài)庫/靜態(tài)庫里是否包含GXPhoneTouchEventVCTest這個(gè)符號
如果沒有.就在工程里找到GXPhoneTouchEventVCTest這個(gè)類.
在Xcode的右邊欄查看target membership是否勾選.