一,现象
Xcode升级到Xcode 10.0后,编译项目出现改错误提醒
二,原因
Xcode升级到Xcode10.0后,由于去掉陈旧的libstdc++库替换为libc++,libc++相对是苹果最新版的C++库,经过优化并全面支持C++11
三,解决方法
- 如果是自己的源码引用了该库,则需要替换成libc++库
单击项目名-->Build Phases-->Link Binary With Libraries,删除6.0.9依赖添加libc++.tdb; - 如果是第三方库引用了6.0.9库,则只能选择手动添加到对应的目录
比如,支持真机编译调试需要往:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
目录添加libstdc++.6.0.9.tbd
,libstdc++.6.tbd
,libstdc++.tbd
这三个文件。
这三个文件可以从官方Xcode10以前的版本中获取到,也可以直接从我的百度网盘下载[链接: https://pan.baidu.com/s/19u_qAZBePthPQjWWf-PhTQ 提取码: kd9x]。
支持手机模拟器编译调试需要往:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
添加以上的三个库文件。
四,补充
对于第三方使用了6.0.9库的,正确的解决办法,推荐还是去更新一下第三方的代码,因为在Xcode10以后,每当你更新Xcode后,你都需要重新配置以上的过程,这样的方式很不合理,比如我这边就遇到了这样的情况,第三方库引用了6.0.9库,导致我每次更新Xcode都需要重新配置以上!如果第三库已经解决了升级了自己库的这个问题,你就可以通过升级第三方库来一劳永逸的解决了。