美文网首页iOS开发iOS开发攻城狮的集散地iOS开发
Xcode10 beta 运行libstdc++报错处理方案

Xcode10 beta 运行libstdc++报错处理方案

作者: EchoZuo | 来源:发表于2018-06-06 14:00 被阅读716次
    大部分开发者下载Xcode10 beta版本应该并不是为了体验Xcode10beta,应该是因为iPhone升级了iOS12beta版本了吧,反正我是因为这个原因,哈哈哈。。。
    和以前一样,新大版本的Xcode运行现有项目多多少少会报一定的错误,这次也不例外,Xcode10 beta版本运行现有项目报错最多的应该就是如图:
    image.png
    这个错误原因是因为iOS12.0中去掉了lstdc++.6.0.9.tbd动态库,如下图搜索便知:
    image.png

    # iOS12.0中全部采用libc++代替lstdc++的动态库(如下图),具体原因可以参考:

    http://www.cnblogs.com/wellbye/archive/2013/04/25/3039203.html

    image.png
    因为beta版本Xcode是无法打包上传appstore,所以肯定还是需要Xcode9.4+Xcode10并行使用,而且现在部分第三方SDK依旧要依赖于lstdc++.6.0.9.tbd动态库,如果对代码进行改动或者修改Xcode的配置,可能会造成其他问题,例如在Xcode9.4上再次运行的时候可能会出现报错等等。

    所以最简单解决该问题的方法就是从Xcode9.4中找到动态库lstdc++.6.0.9.tbd文件copy到Xcode10beta下就可以完美解决问题。或者用古老的办法将iOS12的DeviceSupport文件copy到Xcode9.4下也可以完美解决Xcode9.4运行iOS12的问题。

    路径:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
    为了方便大家,在此提供lstdc++.6.0.9.tbd动态库文件下载和DeviceSupport下载连接。

    DeviceSupport:iOS 7.0 - iOS 12 beta1 所有版本
    libstdc++.6.0.9.tbd

    相关文章

      网友评论

      • 柳骏:https://www.jianshu.com/p/e939e51cc3ad 这个人的解决方法更好
        EchoZuo:@柳骏 都是替换文件,请问更好在哪儿?
      • 1cfddf3ae6ad:今天升级了xcode10,cocos2dx 2.x版本还是编译不过,'cctype' file not found
      • 喵小萌公主:感谢,完美解决:+1: :+1: :+1:
      • mcs123:真心膜拜,完美解决真机和模拟器的问题:+1: :+1: :+1:
      • 御水行舟:是把1 2 3 4 四个文件夹下的文件分别依次复制到四个路径里边,对吧?
        Hynsen:@御水行舟 是1 2 3 4 四个文件夹分别对应一个路径吗?
        御水行舟:@EchoZuo 楼主棒棒的
        EchoZuo:@御水行舟 对的
      • 721e472431a4:全网算你写的最清晰
      • 纞唯伊:大家别被这个 library not found for -lstdc++.6.0.9迷惑了,早上基本解决完了,下午一直纠结在这个上面,确实只能是用真机跑,模拟器我真真的没法跑起来:sob: :joy:
        EchoZuo:文章已经更新,最新处理方案见文章最下方。
      • Hynsen:真机编译可以,模拟器不行
        白水岂能度日:模拟器可以编译通过,但是APP启动报错
        Hynsen:@EchoZuo 感谢你的分享,解决了燃眉之急:+1:
        EchoZuo:是的,正式版目前是这样,模拟器的问题目前还没找到解决方案
      • petter102:速度哇
        EchoZuo:@王子袭来了 如果是上述问题,真机可以实测可以解决,没有问题,,,模拟器目前Xcode10正式版实测有问题,正在查找原因,有结果了会更新的。
        lei_wang_ph:你用上面的方法搞定了没:dizzy_face:
        EchoZuo:6月份发了beta版就搞了,,,:joy:
      • hmengy:我现在是library not found for -lstdc++.6.0.9,在 Xcode9.4上面将对应的文件拖出来放到 Xcode10中 编译结果还是这样的,现在有解决吗
        悟2023:@EchoZuo 嗯嗯,好的我也是才发现真机可以,多谢
        EchoZuo:@海棠依旧r_o 如果是上述问题,真机可以实测可以解决,没有问题,,,模拟器目前Xcode10正式版实测有问题,正在查找原因,有结果了会更新的。
        悟2023:我也是这么操作的,但是没有解决 ~
      • 有朋:请问下你解决这个问题了吗?我这边也是升级到xcode10 beat之后报这个错,是因为里面好几个第三方依赖了这个库。按你说的把xcode9里的libstdc++.6.0.9.tbd文件copy到xcode10里的lib文件夹后,仍然是报找不到libstdc++.6.0.9.tbd。copy过去后,还需要再设置什么吗?
        d922429c991f:@有朋 我也是这个问题,复制了。xcode10 里面也可以搜索到了,但编译还是报错
        有朋:@EchoZuo 确实是因为缺失libstdc++6.0.9.tbd,是第三方库依赖了这个。copy的路径应该是/usr/lib里吧?在依赖项里移除libstdc++6.0.9.tbd,然后重新添加也还是报缺失libstdc++6.0.9.tbd。
        EchoZuo:@有朋 先确认一下保持原因是否为缺失libstdc++6.0.9.tbd文件,如果是copy的时候注意一下路径,路径为:/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr
        再确认一下copy后报错是否和之前一致。
        如果路径也没问题,报错一直一致依旧,建议多尝试几次试试,已经clean。或者再次在配置中再次倒入对应的动态库尝试下
      • 麦子_KB:我报的错是:lstdc++.6
        陌上北辰:iOS 12 调起 相机 报libsystem_kernel.dylib __abort_with_payload + 8 这个楼主有碰见吗
        麦子_KB:是的,我现在升级了,也把libstdc++.6.tbd导入了。还是报错:
        library not found for -lstdc++.6
        EchoZuo:你应该是libstdc++6吧,iOS11.4的动态库中有libstdc++.6.tbd,libstdc++.tbd,libstdc++.6.0.9.tbd这几个动态库。。。
        我这边报错libstdc++.6.0.9动态库缺失,因为部分第三方SDK依赖该库。

      本文标题:Xcode10 beta 运行libstdc++报错处理方案

      本文链接:https://www.haomeiwen.com/subject/pyebsftx.html