NDK r10d 升級(jí) NDK r16b

NDK 升級(jí)變化

一籍琳、 r10c

  1. 添加clang 3.5 的支持璧疗,NDK_TOOLCHAIN_VERSION=clang 會(huì)使用3.5版本的clang
  2. 棄用gcc 4.6 ,并且會(huì)在后續(xù)版本中移除gcc 4.6
  3. 已知問題:gcc 4.9編譯時(shí),使用-Os會(huì)導(dǎo)致崩潰

二、r10d

  1. 32 位ABI 默認(rèn)使用4.8編譯凤瘦,64位ABI默認(rèn)使用4.9編譯
  2. 已經(jīng)修復(fù)r10c 出現(xiàn)的指定-Os 出現(xiàn)的崩潰問題

三冤竹、r10e

  1. 添加clang3.6,默認(rèn)使用clang3.6,移除clang3.4
  2. 移除gcc4.6
  3. 在ld.gold鏈接時(shí)拂封,針對(duì)所有架構(gòu)添加線程支持,默認(rèn)不添加
    要添加多線程編譯鹦蠕,使用--threads
    默認(rèn)不實(shí)用多線程編譯冒签,--no-threads

四、r11

  1. 強(qiáng)烈建議使用clang钟病,并且clang更新到3.8svn
  2. 已經(jīng)棄用gcc萧恕,由clang替代,gcc 也不會(huì)在升級(jí)
  3. 已經(jīng)移除gcc4.8,現(xiàn)在所有的gcc編譯都使用4.9
  4. 已經(jīng)將構(gòu)建系統(tǒng)使用-isystem
  5. 向API21 添加Vulkan 支持
  6. 已知問題
    1. x86 ASAN 目前無法運(yùn)作
    2. Clang肠阱、x86票唆、stlport_static 與 -O0 以上優(yōu)化級(jí)別的組合會(huì)導(dǎo)致 dynamic_cast 測(cè)試失敗
    3. 在ARM32 上使用c++_shared 時(shí),異常處理會(huì)失效辖所,根本原因在于惰说,libc++abi 用于 ARM32 的 LLVM 展開程序與 libgcc 不兼容

五、r11b

  1. 修復(fù) libc++工具鏈缘回,之前已知缺少__cxxabi_config.h

六吆视、r11c

  1. 修復(fù)腳本問題典挑,ndk-gdb,ndk-which等

七、r12

  1. ndk-build 建議使用clang編譯啦吧,在之后的版本中會(huì)移除gcc
  2. 已知問題
    1. x86 AddressSanitizer 工具無法使用
    2. c++_static 異常對(duì)android 9和14無效
    3. RenderScript 工具不存在

八您觉、r13b

  1. gcc 不在支持, NDK_TOOLCHAIN_VERSION默認(rèn)使用clang
  2. 因?yàn)間unstl 中有一部分和clang不兼容,以后可能會(huì)移除gunstl

九授滓、 r14b

  1. 統(tǒng)一了頭文件琳水,以前每個(gè)Android版本都有自己的頭文件,現(xiàn)在使用統(tǒng)一的頭文件般堆,默認(rèn)未開啟
  2. gcc 被棄用在孝,使用gcc,通過-D__ANDROID_API__=$API指定具體的API

十淮摔、r15c

  1. 不在支持Android2.3(android-9),現(xiàn)在最低的版本是android 4.0(android-14)
  2. 默認(rèn)使用統(tǒng)一頭文件

十一私沮、r16b

  1. 棄用armeabi、MIPS和橙、MIPS64的支持
  2. 棄用舊的頭文件仔燕,使用統(tǒng)一頭文件

十二、r17c

  1. gnustl 和 stlport 已棄用
  2. 已移除對(duì) ARMv5 (armeabi)魔招、MIPS 和 MIPS64 的支持

十三晰搀、r18b

  1. 移除gcc
  2. gnustl、gabi++ 和 stlport 已移除
  3. 對(duì)android 14和15的支持已經(jīng)移除

升級(jí)過程

  1. 在項(xiàng)目中办斑,使用了一部分舊的頭文件外恕,當(dāng)升級(jí)到r16b時(shí),因?yàn)轭^文件統(tǒng)一的原因俄周,有一部分頭文件不在兼容吁讨。
    https://android.googlesource.com/platform/ndk/+/ndk-release-r16/docs/UnifiedHeadersMigration.md
    按照文檔中描述的辦法,使用deprecated-headers可以編譯通過
  2. 不能使用android-9峦朗,最低使用android-14
  3. 因?yàn)橹绊?xiàng)目中已知使用gunstl,但是在后續(xù)版本中移除了gunstl,所以修改為c++_static和c++_shared

遇到的問題

  1. 頭文件被移除問題的問題
    通過deprecated-headers 兼容建丧,但是注意,只能使用 gnustl 進(jìn)行編譯
  2. gnustl_static 改為 c++_static 時(shí)波势,出現(xiàn)各種未知問題
    導(dǎo)入了deprecated-headers翎朱,最后解決辦法只能是刪除deprecated-headers,并且修改所有被移除的頭文件
  3. 引用的一部分庫(kù)尺铣,使用的gcc 編譯的
    在r13b 以后拴曲,ndk-build默認(rèn)使用clang,而且在r18b以后凛忿,刪除了c++,所以引用的庫(kù)也需要通過clang編譯
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末澈灼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叁熔,老刑警劉巖委乌,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異荣回,居然都是意外死亡遭贸,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門心软,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壕吹,“玉大人,你說我怎么就攤上這事删铃《幔” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵猎唁,是天一觀的道長(zhǎng)效拭。 經(jīng)常有香客問我,道長(zhǎng)胖秒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任慕的,我火速辦了婚禮阎肝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肮街。我一直安慰自己风题,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布嫉父。 她就那樣靜靜地躺著沛硅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绕辖。 梳的紋絲不亂的頭發(fā)上摇肌,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音仪际,去河邊找鬼围小。 笑死,一個(gè)胖子當(dāng)著我的面吹牛树碱,可吹牛的內(nèi)容都是我干的肯适。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼成榜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼框舔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤刘绣,失蹤者是張志新(化名)和其女友劉穎樱溉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體额港,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饺窿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了移斩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肚医。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖向瓷,靈堂內(nèi)的尸體忽然破棺而出肠套,到底是詐尸還是另有隱情,我是刑警寧澤猖任,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布你稚,位于F島的核電站,受9級(jí)特大地震影響朱躺,放射性物質(zhì)發(fā)生泄漏刁赖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一长搀、第九天 我趴在偏房一處隱蔽的房頂上張望宇弛。 院中可真熱鬧,春花似錦源请、人聲如沸枪芒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舅踪。三九已至,卻和暖如春良蛮,著一層夾襖步出監(jiān)牢的瞬間抽碌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工决瞳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咬展,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓瞒斩,卻偏偏與公主長(zhǎng)得像破婆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胸囱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,694評(píng)論 0 3
  • Android游戲開發(fā)實(shí)踐(1)之NDK與JNI開發(fā)02 承接上篇Android游戲開發(fā)實(shí)踐(1)之NDK與JNI...
    AlphaGL閱讀 3,744評(píng)論 0 24
  • 說明 這只是筆記祷舀。。。裳扯。抛丽。。饰豺。亿鲜。 從0開始搭建測(cè)試環(huán)境 下載android ndk ,然后配置ndk環(huán)境變量,使n...
    吉兇以情遷閱讀 5,093評(píng)論 0 3
  • 一冤吨、NDK產(chǎn)生的背景 Android平臺(tái)從誕生起蒿柳,就已經(jīng)支持C、C++開發(fā)漩蟆。眾所周知垒探,Android的SDK基于J...
    Ten_Minutes閱讀 3,487評(píng)論 1 27
  • 今天去廣州看一個(gè)生病住院的朋友,這個(gè)朋友是老家的一個(gè)朋友怠李。年紀(jì)比我大一歲圾叼,原來在老家的時(shí)候我們經(jīng)常在一起玩,已經(jīng)是...
    Maggielxx閱讀 150評(píng)論 0 0