Xcode10 缺失libstdc++無法編譯解決方案

報錯的關鍵詞是:libstdc++。

原因是蘋果在 XCode10 和 iOS12 中移除了 libstdc++ 這個庫,由 libc++ 這個庫取而代之,蘋果的解釋是 libstdc++ 已經標記為廢棄有5年了,建議大家使用經過了 llvm 優化過并且全面支持C++11的 libc++ 庫。

如果是第三方的sdk引用到了這個庫,只能采取臨時解決方案,先讓項目能夠運行起來。

臨時解決方案:

真機通過編譯解決方法:
1.下載鏈接:http://ouz34cilp.bkt.clouddn.com/libstdc++.6.0.9.tbd.zip
2.將壓縮之后的內容拷貝到目錄:
/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/

模擬器通過編譯解決方案:
1.下載鏈接:http://ouz34cilp.bkt.clouddn.com/libstdc++_sim.zip
2.將壓縮之后的內容拷貝到目錄:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

1.下載鏈接:http://ouz34cilp.bkt.clouddn.com/libstdc++.dylib_sim.zip
2.將壓縮之后的內容拷貝到目錄:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/

熟悉的模擬器:


image.png

完美解決方案:
1.將用到 libstdc++ 的地方重新調整為依賴 libc++。
2.三方庫用到 libstdc++ 的地方,升級三方庫。

ps:避免三方庫的其他問題,升級你的CocoaPods。

Xcode11解決方案:https://github.com/cy920820/Libstdc-.6.0.9-files

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 編譯報錯 開心得升級完新 macOS,以及新 XCode,準備體驗了一把 Dark Mode 編程模式,開心的打開...
    ForstDragon閱讀 4,254評論 1 2
  • 一、 libstdc++ 庫項目用到了c++,依賴了libstdc++.tbd和libstdc++.6.0.9.t...
    執著攀攀閱讀 5,004評論 1 9
  • 原文Xcode10和iOS12適配Xcode10和iOS12適配(持續更新)適配iPhoneX全系詳解,更新Xco...
    00after閱讀 2,806評論 0 6
  • 1info.plist沖突 Xcode10 構建方法做了調整,導致編譯報info.plist的錯誤。 解決方法:f...
    VicoV閱讀 2,300評論 0 3
  • 我可能就是個很悲哀的人,從我出生開始,不,當我的母親懷上我開始,我就是個多余的人。我的母親,曾經三次躺上手術臺,想...
    一個晗閱讀 182評論 0 1