最近升级了 Xcode 10,发现编译的时候报如下错误,在 Xcode 9 上正常:
1 | library not found for -lstdc++.6 |
这个是因为 iOS 12 废弃了 libstdc++,也删除了相关的库,改为使用 libc++替代
解决方案
将缺失的库拷贝到原来对应的目录下,使 Xcode 能够引用
将相应的库拷贝到如下四个目录当中,才能保证模拟器和真机都能用,缺少哪个库拷贝哪个就行,不用全部拷贝
1 | /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/ |
文件下载:libstdc++
其他
如果拷贝进去之后重启 Xcode 编译还是报这个错误,建议在 TARGETS -> Build Phases -> Link Binary With Libraries 当中把当前依赖添加进去
多说两句
这种方法虽然可以暂时解决问题,但最好还是升级下相关库,使用新的库和 API。