Undefined symbols for architecture xxxx解決方案

Undefined symbols for architecture armv7錯(cuò)誤解決方案. ? xxxxxxx.a文件不支持armv7

一俱病、iPhone處理器(32/64位處理器)

蘋果手機(jī)的處理器并不都是64位鸡捐。是從iPhone5S開始尚骄,也即是A7處理器之后是64位處理器金蜀。

iPhone 5s以上都是64位荤懂,含5s珠移。

即iPhone 5s弓乙,iPhone 6,iPhone 6plus钧惧,iPhone 6s暇韧,iPhone 6s plus以及即將推出的iPhone 7,iPhone 7 plus浓瞪,iPhone 7s等系列也都將會(huì)是64位的懈玻。

iPhone SE是32位還是64位呢?

iPhone SE和iPhone 6S在性能上一樣強(qiáng)悍乾颁,采用64位 A9處理器和M9協(xié)動(dòng)處理器涂乌,并且同樣配備了2G內(nèi)存 艺栈。

二、i386/x86_64區(qū)分

x86與x86_64的問(wèn)題:原文鏈接:https://zhidao.baidu.com/question/154980890.html

來(lái)源于8086指令集的一系列處理器湾盒,都稱為x86處理器湿右。

8086是最早的16位x86處理器,i386是最早的32位x86處理器罚勾。所以軟件上標(biāo)稱i386的時(shí)候毅人,是指這個(gè)軟件是32位的,基于x86處理器尖殃。所有32位和64位的x86處理器都能運(yùn)行(除軟件規(guī)定的最低處理器限制)丈莺。

x86-64是x86指令集的64位擴(kuò)展,實(shí)現(xiàn)了從32位到64位的平滑遷移送丰。軟件上標(biāo)注x64或者amd64场刑,則是說(shuō)這個(gè)軟件是64位的,基于x86處理器蚪战。需要64位的x86處理器才能運(yùn)行牵现。

三、Undefined symbols for architecture xxxx解決方案

原文鏈接:http://blog.csdn.net/zuoyou1314/article/details/46638073

在iOS開發(fā)中經(jīng)常遇到的一個(gè)錯(cuò)誤是Undefined symbols for architecture arm64邀桑,這個(gè)錯(cuò)誤表示工程某些地方不支持arm64指令集瞎疼。那我們應(yīng)該怎么解決這個(gè)問(wèn)題了?我們不僅要解決這個(gè)問(wèn)題,更要了解出現(xiàn)這個(gè)問(wèn)題的根源.這樣根本上杜絕這類問(wèn)題發(fā)生.

對(duì)于iOS設(shè)備來(lái)說(shuō)iOS的指令集有armv6、armv7壁畸、armv7s贼急、arm64這樣四種,不同型號(hào)的iOS設(shè)備使用不同的指令集捏萍,下面是各自的區(qū)別:

armv6

iPhone太抓、iPhone 3G

iPod 1G、iPod 2G

armv7

iPhone 3GS令杈、iPhone 4

iPod 3G走敌、iPod 4G、iPod 5G

iPad逗噩、iPad 2掉丽、iPad 3、iPad Mini

armv7s

iPhone 5异雁、iPhone 5C

iPad 4

arm64

iPhone 5S? iPhone 6? iPhone 6Plus

iPad Air, Retina iPad Mini

在Xcode的target->Build Settings中有一個(gè)Architectures的分組主要是用來(lái)設(shè)置Architectures方面的內(nèi)容捶障,下面重點(diǎn)介紹下面幾個(gè)設(shè)置項(xiàng)的內(nèi)容。

ios-architectures-config.png

Architectures

該編譯選項(xiàng)指定了工程將被編譯成支持哪些指令集纲刀,支持指令集是通過(guò)編譯生成對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)包實(shí)現(xiàn)的项炼,如果支持的指令集數(shù)目有多個(gè),就會(huì)編譯出包含多個(gè)指令集代碼的數(shù)據(jù)包,造成最終編譯的包很大锭部。

官方文檔說(shuō)明:

Space-separated list of identifiers. Specifies the architectures (ABIs, processor models) to which the binary is targeted. When this build setting specifies more than one architecture, the generated binary may contain object code for each of the specified architectures.

Build Active Architectures Only

該編譯項(xiàng)用于設(shè)置是否只編譯當(dāng)前使用的設(shè)備對(duì)應(yīng)的arm指令集暂论。

當(dāng)該選項(xiàng)設(shè)置成YES時(shí),你連上一個(gè)armv7指令集的設(shè)備空免,就算你的Valid Architectures和Architectures都設(shè)置成armv7/armv7s/arm64空另,還是依然只會(huì)生成一個(gè)armv7指令集的二進(jìn)制包。

當(dāng)然該選項(xiàng)起作用的前提是你的Xcode必須成功連接了調(diào)試設(shè)備蹋砚。如果你沒(méi)有任何活躍設(shè)備扼菠,即Xcode沒(méi)有成功連接調(diào)試設(shè)備,就算該設(shè)置項(xiàng)設(shè)置成YES依然還會(huì)編譯Valid Architectures和Architectures指定的二進(jìn)制包坝咐。

通常情況下循榆,該編譯選項(xiàng)在Debug模式都設(shè)成YES,Release模式都設(shè)成NO墨坚。

官方文檔說(shuō)明:

Boolean value. Specifies whether the product includes only object code for the native architecture.

Valid Architectures

該編譯項(xiàng)指定可能支持的指令集秧饮,該列表和Architectures列表的交集,將是Xcode最終生成二進(jìn)制包所支持的指令集泽篮。

比如將Valid Architectures設(shè)置支持的arm指令集版本有:armv7盗尸、armv7s、arm64帽撑,對(duì)應(yīng)的Architectures設(shè)置的支持arm指令集版本有:armv7s泼各,這時(shí)Xcode只會(huì)生成一個(gè)armv7s指令集的二進(jìn)制包。

官方文檔說(shuō)明:

Space-separated list of identifiers. Specifies the architectures for which the binary may be built. During the build, this list is intersected with the value of ARCHS build setting; the resulting list specifies the architectures the binary can run on. If the resulting architecture list is empty, the target generates no binary.

說(shuō)明

1亏拉、指令集是向下兼容的扣蜻。比如,armv7s指令集的設(shè)備及塘,可以兼容運(yùn)行使用armv7莽使、armv6編譯的程序。

示例

在做項(xiàng)目的時(shí)候,用到了第三方社交分享靜態(tài)庫(kù)是時(shí)候,會(huì)編譯失敗,先來(lái)看看下圖

看,它忽略了那個(gè)靜態(tài)庫(kù)文件導(dǎo)致鏈接失敗了,然后我查看了靜態(tài)庫(kù)所支持的架構(gòu),打開終端輸入查看命令lipo - info xxx.a ,結(jié)果如下:

發(fā)現(xiàn)了這個(gè)靜態(tài)庫(kù)只支持armv7 armv7s i386 . 而在我的工程中Valid Architectures和Architectures中均包含了arm64的指令集,這就是說(shuō)明我需要編譯的app最終要支持arm64的,而程序中用到的靜態(tài)庫(kù)并沒(méi)有arm64,所以才導(dǎo)致了出錯(cuò),因此,需要我們?nèi)ブ匦孪螺d一個(gè)支持arm64的靜態(tài)庫(kù)文件,那么就可以正常編譯通過(guò)了.

參考文檔

1笙僚、《Xcode設(shè)置項(xiàng)之Architectures和Valid Architectures》

2芳肌、《xcode5 arm64》

3、《64-Bit Transition Guide for Cocoa Touch》

4味咳、iOS開發(fā)之Architectures設(shè)置

5庇勃、Xcode設(shè)置項(xiàng)之Architectures和Valid Architectures

6、Xcode Build Settings中的Architecture概述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末槽驶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸳兽,更是在濱河造成了極大的恐慌掂铐,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異全陨,居然都是意外死亡爆班,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門辱姨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柿菩,“玉大人,你說(shuō)我怎么就攤上這事雨涛∈嗖埃” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵替久,是天一觀的道長(zhǎng)凉泄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蚯根,這世上最難降的妖魔是什么后众? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮颅拦,結(jié)果婚禮上蒂誉,老公的妹妹穿的比我還像新娘。我一直安慰自己距帅,他們只是感情好右锨,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锥债,像睡著了一般陡蝇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哮肚,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天登夫,我揣著相機(jī)與錄音,去河邊找鬼允趟。 笑死恼策,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的潮剪。 我是一名探鬼主播涣楷,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抗碰!你這毒婦竟也來(lái)了狮斗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弧蝇,失蹤者是張志新(化名)和其女友劉穎碳褒,沒(méi)想到半個(gè)月后折砸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沙峻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年睦授,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摔寨。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡去枷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出是复,到底是詐尸還是另有隱情删顶,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布佑笋,位于F島的核電站翼闹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蒋纬。R本人自食惡果不足惜猎荠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜀备。 院中可真熱鬧关摇,春花似錦、人聲如沸碾阁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脂凶。三九已至宪睹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蚕钦,已是汗流浹背亭病。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘶居,地道東北人罪帖。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像邮屁,于是被迫代替她去往敵國(guó)和親整袁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容