美文网首页iOS|Android.全球
Xcode 10 ld: library not found f

Xcode 10 ld: library not found f

作者: 海森V | 来源:发表于2018-09-25 16:31 被阅读58次

    1 升级Xcode 10后,编译崩溃报这个错误:Xcode 10 ld: library not found for -lstdc++.6

    2 原因:

    libstdc++ 在5年前被弃用了。Apple最新的平台不支持它。

    3 解决办法一: 项目使用libc++而不是libstdc++

    4 解决办法二:不使用libc++而是替换文件。在替换的过程中发现真机和模拟器的操作步骤不一致,需要分开设置。需要未升级的Xcode(9.4的版本)。

    5 真机的包替换。替换步骤如下:

    5.1需要旧的Xcode,右键显示包内容,在路径

    /Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib找到如图的文件copy到Xcode 10的同样的路径下 屏幕快照 2018-09-25 下午4.12.17.png
    5.2 libstdc.6.tbd是libstdc++.6.0.9.tbd的替身,右键 显示替身 就可跳回去, 所以可以copy libstdc++.6.0.9.tbd到路径下,然后复制,然后改名就ok

    6 替换模拟器的包

    6.1 会发现在Platforms下面不同平台的地址,进入 /Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib 目录下,按5的步骤替换
    6.2 运行,我这里报: dyld:Libray not loaded:/usr/lib/libstdc++.6.dylib


    屏幕快照 2018-09-25 下午3.28.45.png 6.3 找到旧版的/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime,右键显示包内容,找到/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libstdc++.6.0.9.dyli 屏幕快照 2018-09-25 下午4.25.49.png

    6.4 把找到的libstdc++.6.0.9.dylib赋值到新版Xcode同样的目录下,右键复制copy到同目录下取名叫libstdc++.6.dylib和libstdc++.dylib,最终如图


    屏幕快照 2018-09-25 下午4.27.44.png

    6.5如果直接制作替身改名也会出错,所以要复制改名

    相关文章

      网友评论

      • Abby_srm:感谢分享哈,解决了
      • maxYO:深入浅出简单易懂666

      本文标题:Xcode 10 ld: library not found f

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