Xcode 10 library not found for -lstdc++.6.0.9
Xcode 10 library not found for -lstdc++.6.0.9
新风作浪错误原因:
libstdc++
库五年前已经废弃,已经在iOS 12模拟器中删除,也不支持(tvOS和watchOS)平台。苹果建议大家使用经过了 llvm
优化过并且全面支持C++11的 libc++
库,libc++
为 llvm
项目重新编写的库,简化了代码,速度也有加快。
解决方案:
Target -> Build Phases -> Link Binary With Libraries
里把libstdc++.6.0.9.tbd
替换成libc++.tbd
。然后Xcode 导航菜单栏,File -> Workspace Setting
然后把上面的Build System
设置成Legacy Build System
,下面的Build System
设置为Use Shared Setting
(或者上面的Build System
默认New Build System (Default)
,下面Build System
设置成Legacy Build System
好像都可以)。手动将 Xcode 9 中的库
libstdc++.6.0.9.tbd
复制到 Xcode 10 目录下(未验证)Xcode 9 路径`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib` Xcode 10 路径`/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib`目录下 具体操作: 真机拷贝tdb库到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/ 模拟器拷贝dylib库到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/ 模拟器拷贝tdb库到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/ 对应库下载地址: https://github.com/Kila2/libstdc-.6.0.9.tbd ,iPhoneOS文件下的库对应真机目录下的库,iPhoneSimulator目录下的库对应模拟器下的库
自己业务
如果自己业务中使用libstdc++
直接换成libc++
如果使用cocoapods集成的第三方SDK中包含libstdc++
,则需要第三方服务升级支持,或者改用手动集成,然后把libstdc++
换成libc++
参考:
https://awhisper.github.io/2018/06/08/libstdc-inxcode10ios12
https://github.com/Kila2/libstdc-.6.0.9.tbd
评论
匿名评论隐私政策