报错原因:
Xcode升级到Xcode10.0后,由于去掉陈旧的libstdc++库替换为libc++,libc++相对是苹果最新版的C++库,经过优化并全面支持C++11
解决办法:
第一种解决办法:
下载libstdc++库,下载链接,提取码arms
将 libstdc++、libstdc++.6、libstdc++6.0.9拷贝到Xcode的如下目录:
1.真机环境:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
2.模拟器环境:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
第二种解决办法:
下载这个脚本,这个脚本能一键配置:
https://github.com/devdawei/libstdc-
具体使用方法:
Xcode 10和Xcode 11中删除的libstdc++库
先下载下来这个项目,然后把该文件拖到桌面,然后打开终端cd到刚下载的这个文件夹:libstdc--master文件夹;
如果你使用的是 Xcode 10,则打开刚下载的这个文件夹,在里面找到:install-Xcode_10.sh,这个文件,在将install-Xcode_10.sh拖到终端中执行即可。Xcode 11 beta 版则将install-Xcode_11-beta.sh拖到终端中执行。
总结:
出现原因主要是有时候第三方库中引用了libstdc++,但是Xcode10缺失改库,上面解决办法是治标之法,治本之法可以关注第三方库相关公告,一般第三方库会适配相应的Xcode版本,及时更新即可。
网友评论