2019-08-12 解决library not found for -lstdc++.6.0.9

一,现象

Xcode升级到Xcode 10.0后,编译项目出现改错误提醒

二,原因

Xcode升级到Xcode10.0后,由于去掉陈旧的libstdc++库替换为libc++,libc++相对是苹果最新版的C++库,经过优化并全面支持C++11

三,解决方法

  1. 如果是自己的源码引用了该库,则需要替换成libc++库
    单击项目名-->Build Phases-->Link Binary With Libraries,删除6.0.9依赖添加libc++.tdb;
  2. 如果是第三方库引用了6.0.9库,则只能选择手动添加到对应的目录
    比如,支持真机编译调试需要往:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/目录添加libstdc++.6.0.9.tbdlibstdc++.6.tbdlibstdc++.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都需要重新配置以上!如果第三库已经解决了升级了自己库的这个问题,你就可以通过升级第三方库来一劳永逸的解决了。

你可能感兴趣的:(2019-08-12 解决library not found for -lstdc++.6.0.9)