報錯: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++
庫。
臨時解決辦法
拷貝缺失的
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 問題
目前發現 百度地圖裡邊需要導入這個庫 并且提供的有可以 自己添加進去
還有一種方式就是删除原來導入的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不顯示圖檔了 可以通過重新開機解決
頭檔案引入不能自動提示引入非目前檔案夾的頭檔案, 改為Legacy Build System就又能自動提示了