適配Xcode10與iOS12之libstdc++問題

編譯報(bào)錯(cuò)

libstdc++問題

開開心心的升級(jí)完新 macOS颠放,以及新 XCode,準(zhǔn)備體驗(yàn)了一把 Dark Mode 編程暗黑模式吭敢,快樂的打開自己的項(xiàng)目的時(shí)候碰凶,發(fā)現(xiàn)編譯不通過了。鹿驼。欲低。。蠢沿。

心里一群草泥馬跑過去。匾效。舷蟀。。面哼。野宜。

后來調(diào)查了一下發(fā)現(xiàn):

如果你的工程中如果依賴 libstdc++,無論是你本身的功能用 C++ 跨平臺(tái)編寫魔策,還是你引入了某個(gè) SDK 其內(nèi)部依賴這個(gè) libstdc++,都會(huì)導(dǎo)致整個(gè)工程編譯不通過匈子,報(bào)出 Undefined symbols,C++ 的 List 找不到了

原因是蘋果在 XCode10 和 iOS12 中移除了 libstdc++ 這個(gè)庫闯袒,由 libc++ 這個(gè)庫取而代之虎敦,蘋果的解釋是 libstdc++ 已經(jīng)標(biāo)記為廢棄有5年了游岳,建議大家使用經(jīng)過了 llvm 優(yōu)化過并且全面支持C++11的 libc++ 庫。

解決方法

真機(jī)編譯

下載文件
libstdc++.6.0.9.tbd.zip 解壓其徙,放到目錄

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

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

模擬器編譯報(bào)錯(cuò)

但是唾那,執(zhí)行上面操作后访锻,模擬器還是不行
報(bào)錯(cuò):


模擬器報(bào)錯(cuò)

拷貝libstdc++之后就可以編譯通過了,但 App 在模擬器里一運(yùn)行就崩潰闹获,就會(huì)報(bào)動(dòng)態(tài)鏈接庫裝載出錯(cuò)期犬,看出錯(cuò)提示說是 .dylib 與這個(gè)模擬器不符合。這是 XCode10 自帶的 iOS12 模擬器的問題避诽,在 XCode10 中安裝 iOS11 的模擬器運(yùn)行環(huán)境龟虎,然后切換到 iOS11 模擬器運(yùn)行,一切問題沒有茎用。

這里劃重點(diǎn)哦遣总。。轨功。旭斥。

如果想在 XCode12 iOS12 模擬器中運(yùn)行:

  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/
大功告成

這時(shí)模擬器真機(jī)都可以正常跑起來了垂券,讓我們一起搖擺。羡滑。菇爪。。
但是這種方法只是臨時(shí)解決柒昏,蘋果官方爸爸是不希望咱們這么干的

正確解決辦法

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

libc++

Apple 為什么在 Mavericks 里把 C++ 標(biāo)準(zhǔn)庫從 libstdc++ 改成 libc++有梆?

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

Xcode10和iOS12踩坑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末是尖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泥耀,更是在濱河造成了極大的恐慌饺汹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痰催,死亡現(xiàn)場(chǎng)離奇詭異兜辞,居然都是意外死亡迎瞧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門弦疮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夹攒,“玉大人,你說我怎么就攤上這事胁塞∮匠ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵啸罢,是天一觀的道長编检。 經(jīng)常有香客問我,道長扰才,這世上最難降的妖魔是什么允懂? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮衩匣,結(jié)果婚禮上蕾总,老公的妹妹穿的比我還像新娘。我一直安慰自己琅捏,他們只是感情好生百,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柄延,像睡著了一般蚀浆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搜吧,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天市俊,我揣著相機(jī)與錄音,去河邊找鬼滤奈。 笑死摆昧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜒程。 我是一名探鬼主播绅你,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼搞糕!你這毒婦竟也來了勇吊?” 一聲冷哼從身側(cè)響起曼追,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤窍仰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后礼殊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驹吮,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡针史,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碟狞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啄枕。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖族沃,靈堂內(nèi)的尸體忽然破棺而出频祝,到底是詐尸還是另有隱情,我是刑警寧澤脆淹,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布常空,位于F島的核電站,受9級(jí)特大地震影響盖溺,放射性物質(zhì)發(fā)生泄漏漓糙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一烘嘱、第九天 我趴在偏房一處隱蔽的房頂上張望昆禽。 院中可真熱鬧,春花似錦蝇庭、人聲如沸醉鳖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辐棒。三九已至,卻和暖如春牍蜂,著一層夾襖步出監(jiān)牢的瞬間漾根,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工鲫竞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辐怕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓从绘,卻偏偏與公主長得像寄疏,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子僵井,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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

  • 一陕截、 libstdc++ 庫項(xiàng)目用到了c++,依賴了libstdc++.tbd和libstdc++.6.0.9.t...
    執(zhí)著攀攀閱讀 4,946評(píng)論 1 9
  • 目前我們項(xiàng)目已做了Xcode10(swift4.0)和新機(jī)型的適配重罪,總結(jié)一下遇到的問題和修改的內(nèi)容越除,希望幫助到其他...
    Mister_H閱讀 7,059評(píng)論 1 21
  • 今天升級(jí)了xcode10 發(fā)現(xiàn)以前的老項(xiàng)目全部報(bào)錯(cuò)了,慌得一批T某搿T币竖幔! 趕緊想辦法解決: 原來是蘋果在XCode10...
    GuessYe閱讀 593評(píng)論 0 2
  • 劉海屏判斷 環(huán)境Xcode 10.0 beta 3iOS12模擬器iPhone 6 iOS 12.0 beta 3...
    我不是小兵閱讀 2,081評(píng)論 3 3
  • 1info.plist沖突 Xcode10 構(gòu)建方法做了調(diào)整笙以,導(dǎo)致編譯報(bào)info.plist的錯(cuò)誤。 解決方法:f...
    VicoV閱讀 2,284評(píng)論 0 3