美文网首页
Xcode 10 : 编译报错ld: library not f

Xcode 10 : 编译报错ld: library not f

作者: 请叫我作家 | 来源:发表于2018-09-30 10:42 被阅读1173次

    解决方案在最下方,

    升级Xcode10之后编译报错问题修复:

    1. 原文: library not found for XXX

    ld: library not found for -lstdc++.6
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    原因

    -lstdc++.6 在Xcode10中已经被彻底移除

    解决方案

    1. 临时解决方案(不建议使用,会出现后面的系统兼容bug):
      我们从原来的Xcode9.x 下面将对应的库文件拷贝到Xcode10下面,重启Xcode即可(Xcode 10 Beta版可行,Xcode 10 正式版会有问题)

    真机运行库

    在终端输入以下命令打开Xcode的lib库目录(此目录为安装的默认目录)

    open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
    

    如果安装在其他目录 或者Xcode改名的建议右键Xcode显示包内容,进入

    Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
    

    把刚刚下载的zip文件解压

    获取到的 真机的 libstdc++.6.0.9.tbd 文件,扔进去

    模拟器运行库

    在终端输入以下命令打开Xcode的lib库目录(此目录为安装的默认目录)

    open  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
    

    如果安装在其他目录 或者Xcode改名的建议右键Xcode显示包内容,进入

    Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
    

    把刚刚下载的zip文件解压

    获取到的 模拟器的 libstdc++.6.0.9.tbd 文件,扔进去

    1. 完美解决方案:
      适配Xcode 10,本身项目去掉对应的相关库文件
      1). 有第三方使用了该库的,联系第三方做适配并升级
      2). 自己有使用的去除对应库(建议修改为libc++),做好维护升级即可。

    最后一步

    重启Xcode即可

    如果重启Xcode 无效,运行报如下错误(因为您的系统版本无法兼容,此时需要重装系统才可以了),此时建议移除对应库:

    dyld: Library not loaded: /usr/lib/libstdc++.6.dylib
    Referenced from: /Users/haizel/Library/Developer/CoreSimulator/Devices/013F869E-06AF-4B64-B783-38F1A3DCB2A1/data/Containers/Bundle/Application/96071781-C8D9-4187-B8DB-0BD084C235BA/worldPorject.app/worldPorject
    Reason: no suitable image found. Did find:
    /usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator

    终极解决方案(将以下四个对应目录的文件(建议3个stdc文件都复制)复制到Xcode10下面即可):

    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

    相关链接

    简书作者
    简书作者

    相关文章

      网友评论

          本文标题:Xcode 10 : 编译报错ld: library not f

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