[xcode10關於clang -lstdc++.6.0.9報錯問題]

weixin_33913332發表於2018-09-19

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

臨時解決辦法

編譯問題

xcode10關於clang -lstdc++.6.0.9報錯問題

因為xcode10已經廢棄了libstdc++.6.0.9這個庫,所以只需要在你的工程中刪除這個庫,然後新增libc++這個庫就可以了。別的沒什麼,如果xcode10報錯mutable開頭的,大部分是因為你新增的檔案重名造成的,找到後面的名稱,刪除重複就可以了

拷貝缺失的libstdc++
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
XCode10目前是Beta版,和XCode9正式版可以共存,於是從XCode9的目錄裡,把缺失的.tbd檔案拷貝過來,要記得拷貝2套,一套是模擬器的,一套是裝置的,可以簡單的用下面的命令

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/

https://pan.baidu.com/s/4i6UtecP

相關文章