天天看點

Xcode10與iOS12 适配以及解決方案臨時解決辦法

報錯:library not found for -lstdc++.6.0.9

報錯:library not found for -libstdc++.6.0.9

libstdc++、libstdc++.6、libstdc++6.0.9

OpenCV 靜态連結 libstdc++
           
無論是你 C++ 跨平台編寫,還是你引入了某個SDK其内部依賴這個libstdc++,都會導緻整個工程編譯不通過,報出Undefined symbols,C++ 的 List 找不到了

目前發現高德地圖有這個庫
           

原因:

蘋果在XCode10和iOS12中移除了

libstdc++

這個庫,由

libc++

這個庫取而代之,

蘋果的解釋是

libstdc++

已經标記為廢棄有5年了,建議大家使用經過了llvm優化過并且全面支援C++11的

libc++

庫。

Xcode10與iOS12 适配以及解決方案臨時解決辦法

臨時解決辦法

拷貝缺失的 

libstdc++

libstdc++.6

libstdc++6.0.9

下載下傳位址連接配接 連結: https://pan.baidu.com/s/19Ko_DRV0Z1W5Tl3y0zYz2g 提取碼: rsya

XCode10目前是Beta版,和XCode9正式版可以共存,于是從XCode9的目錄裡,把缺失的.tbd檔案拷貝過來,要記得拷貝2套,一套是模拟器的,一套是裝置的,

以下為路徑(注意不同版本的sdk 路徑不同需要自己替換)

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

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

例如12.0系統運作

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

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

library not found for -lcrypto 問題
           
目前發現 百度地圖裡邊需要導入這個庫 并且提供的有可以 自己添加進去
           
Xcode10與iOS12 适配以及解決方案臨時解決辦法

還有一種方式就是删除原來導入的pod 檔案 重新 導入一次并且更新sdk 到最新版本

1. 提示檔案重複

如果 因為三方庫裡帶了或者重複建立的檔案比如readme.md,LICENCE這類檔案,删除掉或者改個名字就ok了

還有一種方式修改Xcode設定(Legacy Build System)
Xcode->File->Project Settings/Workspace Setting-> Build System -> Legacy Build System

注意 改為Legacy Build System之後發現launchscreen不顯示圖檔了 可以通過重新開機解決
           
Xcode10與iOS12 适配以及解決方案臨時解決辦法
Xcode10與iOS12 适配以及解決方案臨時解決辦法
頭檔案引入不能自動提示引入非目前檔案夾的頭檔案,

改為Legacy Build System就又能自動提示了