一:引言

libstdc++ 自从 Xcode 8 宣布不建议使用后,终于在 Xcode 10 中被直接删掉。其中包括 stdc++, stdc++.6.0.9, libstdc++.6.0.9.tbd(新的动态库), libstdc++.6.0.9.dylib(旧的动态库)。

二:适配过程

升级Xcode10之后的确如此,报错:library not found for -lstdc++.6.0.9

看到有帖子说如果是第三方报这个错,联系第三方适配Xcode10。于是。。就有开发联系了我,问我啥时候适配呢。好吧,我是做SDK的,那就适配吧。

方案一:Xcode 9 中 关于 libstdc++ 的文件复制一份到 Xcode 10 中

说实话,这个方案并不适合我,因为我做的不是项目,而是SDK,我不能强制开发者这么做,这个是等待第三方适配的临时方案吧。再一个我也试了试,真机没有问题,但是模拟器在iOS12时会出现闪退。

方案二:重新编译,使用到 libstdc++ 的 API 的库重新修改代码,链接到 libc++

我这个SDK在Xcode10中真机正常运行,但是模拟器下报错信息如下:

Undefined symbols for architecture x86_64:"std::_List_node_base::hook(std::_List_node_base*)", referenced from:std::list<AudioDataStruct*, std::allocator<AudioDataStruct*> >::_M_insert(std::_List_iterator<AudioDataStruct*>, AudioDataStruct* const&) in libLECPlayerFoundation.a(ios_audio_out.o)std::list<lec_pic_t*, std::allocator<lec_pic_t*> >::insert(std::_List_iterator<lec_pic_t*>, lec_pic_t* const&) in libLECPlayerFoundation.a(ios_video_dec.o)std::list<lec_pic_t*, std::allocator<lec_pic_t*> >::_M_insert(std::_List_iterator<lec_pic_t*>, lec_pic_t* const&) in libLECPlayerFoundation.a(ios_video_dec.o)"std::_List_node_base::unhook()", referenced from:std::list<AudioDataStruct*, std::allocator<AudioDataStruct*> >::_M_erase(std::_List_iterator<AudioDataStruct*>) in libLECPlayerFoundation.a(ios_audio_out.o)std::list<lec_pic_t*, std::allocator<lec_pic_t*> >::_M_erase(std::_List_iterator<lec_pic_t*>) in libLECPlayerFoundation.a(ios_video_dec.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

很明显是在我的SDK里报的错,C++的API没有找到支持库,于是打开SDK源码,我是用脚本来编译出来的.a文件。看苹果官方的介绍可以得知,C++需要重新编译链接到libc++库,我的操作是在clang语句中加入-stdlib=libc++

编译出.a文件,重新替换工程中的旧.a文件,在Xcode10下真机和模拟器都可以正常运行。适配成功。

想知道Xcode10有哪些新特性,看这里What’s new in Xcode 10

Xcode10适配之libstdc++.6.0.9.tdb相关推荐

  1. Xcode10,Xcode11,Xcode12 libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd 缺失

    升级xcode经常会出现libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd 缺失的问题,里面有不同版本的包,也可以通过终端命令进行安装 点击此处进入下载 ...

  2. 华为P50系列已适配鸿蒙OS 2.0 Beta2:有望4月亮相

    此前有爆料达人表示华为P50系列今年将推迟至4月发布,由于芯片问题,备货遭遇前所未有的影响.近日,华为官方再次透露关于该机的消息,称其将首发鸿蒙OS 2.0 Beta 2系统. 据华为B站联合运营账户 ...

  3. 开源进展 | WeBASE v3.0发布,支持适配FISCO BCOS v3.0稳定版

    WeBASE(WeBank Blockchain Application Software Extension) 是在区块链应用和FISCO BCOS底层之间搭建的一套通用组件,围绕交易.合约.密钥管 ...

  4. 鸿蒙历程及路标没有适配手机,鸿蒙2.0来了?华为开发者大会时间确认:Mate40会不会首发?...

    原标题:鸿蒙2.0来了?华为开发者大会时间确认:Mate40会不会首发? 昨天晚上九点半,华为终端官方微博正式宣布,将在2020年9月10日至9月12日正式举办华为开发者大会(HDC2020),这次大 ...

  5. iphoneX布局适配及iOS 11.0系统适配

    一,想必大多开发者将自己的项目跑到iPhoneX模拟器上后,会出现各种异常,包括界面布局的变化,根据自己遇到的情况主要说下面两点大家肯定需要修改的: (1),启动页不是全屏的,(如图) 解决办法: 如 ...

  6. android9.0谷歌框架cdsk,Android Studio项目适配AndroidX(Android 9.0)的方法步骤

    说在前面: 老项目.大项目适配Android X 注意了,一定要谨慎.谨慎.再谨慎.项目中用到的第三方库多的话会很麻烦,有些第三方库还没有适配Android X. 适配Android X的两种情况:一 ...

  7. 屏幕适配——系统升级android 8.0 部分UI出现错乱——“可用屏幕分辨率”

    这两天将自己的mate9从7.0升级到8.0发现一个问题,app的某个ui界面部分错乱了:因为屏幕适配使用了dimens适配,所以猜测有可能屏幕规格没有覆盖到:但是发现mate9的屏幕分辨率为1920 ...

  8. Android 适配黑暗模式10.0 Q

    首先刚开始 我开始使用了第三方得 Android-skin-support库 因为我的项目是databinding的,升级到最新版本后 库不支持了,所以也是抛弃了,可能是因为这个库的作者工作忙或者是没 ...

  9. 鸿蒙适配倒计时,鸿蒙2.0上线倒计时,华为的最强反击终于来了!

    作者 | 木易 来源 | 互联网头条(ID:topwww001) 在攀登世界之巅的这场战役中,华为选择了更加难走的"南坡". 9月10日,华为2020年的开发者大会将在东莞松山湖举 ...

  10. android miui9.0改装条例,安卓的通知适配(更新至9.0)

    有的手机在添加channel后仍然无法弹出通知.追踪logcat发现有这么一句: E/NotificationService: Suppressing notification from packag ...

最新文章

  1. Google和网易有道合作开课了
  2. MySQL server has gone away报错原因分析及解决办法
  3. html 自定义字段,HTML 标签自定义属性的问题
  4. mysql食堂系统E R图_教务管理系统数据库E/R图
  5. C语言代码规范(编程规范)
  6. 12123选牌漏洞_12123选牌漏洞是什么?新车牌号自编自选技巧
  7. mysql1130_解决远程连接mysql错误1130的方法
  8. [js] 如何避免JS浮点运算的精度问题(例:0.1+0.7=0.7999999999999999)
  9. 商务搜索引擎_2019年中国网民搜索引擎使用情况研究报告
  10. 妖帝q群机器人_有关酷Q 晨风机器人,契约 qqlite qqlight ,mypc等QQ机器人关停一事的一点想法...
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的会员管理系统
  12. 蔡俊锋 web API 开发规范
  13. 数据库安全之Mysql数据库安全加固
  14. Unity 置顶点击的对象
  15. 全新AIY Edge TPU开发板惊艳亮相,今秋发布!
  16. HTML特殊字符符号大全
  17. linux中rpm -q命令,Linux中的RPM
  18. go实现文档中保存的微信图片.dat格式解密为图片
  19. 2019年江苏卷数学高考真题Word版含答案解析
  20. linux 监控平台介绍

热门文章

  1. 厦门理工学院OJ题解(1223:Rite与跳舞毯)
  2. [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
  3. jcp jsr_JCP批准Java SE 7和随附的JSR
  4. 如何用css写出一个三角形
  5. Java的环境变量在哪个文件夹_Java设置环境变量
  6. Python学习手册之控制结构(二)
  7. 【企业微信】自建应用可信域名验证
  8. PAAS平台的理解及与LaaS,SaaS的关系
  9. 转载:欧姆社 漫画学习统计学
  10. 电商网站前台模板_湖州搜索引擎优化网站网络推广营销公司