libstdc++,libstdc++.6.0.9缺失適配Xcode10與iOS12

編譯報錯

報錯信息.png

開心得升級完新 macOS,以及新 XCode,準備體驗了一把 Dark Mode 編程模式,開心的打開自己的老項目的時候,發(fā)現(xiàn)編譯不通過了,報錯,


發(fā)現(xiàn)缺失爆紅.png

工程中如果依賴 libstdc++缀蹄,無論是你本身的功能用 C++ 跨平臺編寫,還是你引入了某個 SDK 其內(nèi)部依賴這個 libstdc++,都會導(dǎo)致整個工程編譯不通過膘婶,報出 Undefined symbols缺前,C++ 的 List 找不到了,
原因是蘋果在 XCode10 和 iOS12 中移除了 libstdc++ 這個庫,由 libc++ 這個庫取而代之悬襟,蘋果的解釋是 libstdc++ 已經(jīng)標記為廢棄有5年了衅码,建議大家使用經(jīng)過了 llvm 優(yōu)化過并且全面支持C++11的 libc++ 庫。

臨時解決辦法

  • 編譯問題
    拷貝缺失的libstdc++
    在 XCode10 正式發(fā)布前古胆,XCode10 目前是 Beta 版肆良,和 XCode9 正式版可以共存
    于是從 XCode9 的目錄里,把缺失的 .tbd 文件拷貝過來逸绎,要記得拷貝2套惹恃,一套是模擬器的,一套是設(shè)備的棺牧,可以簡單的用下面的命令
cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

現(xiàn)在 XCode10 正式發(fā)布了巫糙,很多人已經(jīng)沒有 XCode9 來拷貝了,于是這里放出來文件提供下載

libstdc++.6.0.9.tbd.zip 解壓颊乘,放到目錄

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

查看是否存在.png

拷貝過去后参淹,你就可以在新 XCode(黑暗模式真心舒服)下面看到libstdc++了,放心的添加到工程里吧

  • 模擬器運行
    image.png

    拷貝libstdc++之后就可以編譯通過了乏悄,但 App 在模擬器里一運行就崩潰浙值,就會報動態(tài)鏈接庫裝載出錯,看出錯提示說是 .dylib 與這個模擬器不符合檩小。這是 XCode10 自帶的 iOS12 模擬器的問題开呐,在 XCode10 中安裝 iOS11 的模擬器運行環(huán)境,然后切換到 iOS11 模擬器運行,一切問題沒有筐付。如果想在 XCode12 iOS12 模擬器中運行:
  1. libstdc++_sim.zip 解壓卵惦,放到目錄
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

  1. libstdc++.dylib_sim.zip 解壓,放到目錄
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/

  • 真機運行
    拷貝 libstdc++ 之后瓦戚,使用 iOS12 的真機運行沮尿,沒有啥太大的問題

正確解決辦法

  • 如果你自己的業(yè)務(wù)模塊使用了 libstdc++ ,那么就把模塊代碼重新調(diào)整為依賴 libc++ 较解,然后重新檢查是否存在問題畜疾,重新編譯
  • 如果你引用的三方庫使用了 libstdc++ ,那么向三方庫尋求支持哨坪,進行升級

libc++

Apple 為什么在 Mavericks 里把 C++ 標準庫從 libstdc++ 改成 libc++庸疾?

關(guān)于此問題的討論

Xcode10和iOS12踩坑

ps : 參考

折騰范兒の味精

libstdc++適配Xcode10與iOS12

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市当编,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徒溪,老刑警劉巖忿偷,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異臊泌,居然都是意外死亡鲤桥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門渠概,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茶凳,“玉大人,你說我怎么就攤上這事播揪≈” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵猪狈,是天一觀的道長箱沦。 經(jīng)常有香客問我,道長雇庙,這世上最難降的妖魔是什么谓形? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮疆前,結(jié)果婚禮上寒跳,老公的妹妹穿的比我還像新娘。我一直安慰自己竹椒,他們只是感情好童太,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般康愤。 火紅的嫁衣襯著肌膚如雪儡循。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天征冷,我揣著相機與錄音择膝,去河邊找鬼。 笑死检激,一個胖子當著我的面吹牛肴捉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播叔收,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼齿穗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了饺律?” 一聲冷哼從身側(cè)響起窃页,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎复濒,沒想到半個月后脖卖,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡巧颈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年畦木,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砸泛。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡十籍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唇礁,到底是詐尸還是另有隱情勾栗,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布垒迂,位于F島的核電站械姻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏机断。R本人自食惡果不足惜楷拳,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吏奸。 院中可真熱鬧欢揖,春花似錦、人聲如沸奋蔚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坤按,卻和暖如春毯欣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臭脓。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工酗钞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人来累。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓砚作,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘹锁。 傳聞我的和親對象是個殘疾皇子葫录,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

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

  • 編譯報錯 開開心心的升級完新 macOS,以及新 XCode领猾,準備體驗了一把 Dark Mode 編程暗黑模式米同,快...
    iCoders閱讀 10,063評論 7 17
  • 一、 libstdc++ 庫項目用到了c++瘤运,依賴了libstdc++.tbd和libstdc++.6.0.9.t...
    執(zhí)著攀攀閱讀 4,947評論 1 9
  • 原文Xcode10和iOS12適配Xcode10和iOS12適配(持續(xù)更新)適配iPhoneX全系詳解,更新Xco...
    00after閱讀 2,759評論 0 6
  • 今天升級了xcode10 發(fā)現(xiàn)以前的老項目全部報錯了,慌得一批G舷肌!拯坟! 趕緊想辦法解決: 原來是蘋果在XCode10...
    GuessYe閱讀 593評論 0 2
  • iOS12的發(fā)布,帶來了老設(shè)備性能提升韭山,增強穩(wěn)定性郁季,更多是為了穩(wěn)住果粉,更多是挽回被bugOS11坑苦的名聲钱磅。為了...
    沈悅閱讀 1,767評論 0 1