美文网首页
顽固的 “ld: library not found for -

顽固的 “ld: library not found for -

作者: 小緈福 | 来源:发表于2020-04-03 20:15 被阅读0次
    1291197-dd00ab02b9dc7255.jpeg

    升级 Xcode10 之后,运行了一遍旧的项目,报错如下:

    1. 找不到 libstdc++.6.0.9.tbd 库
      之前有导入过 libstdc++.6.0.9.tbd,而这个 Xcode10 已经不支持了,换成了 libc++.tbd,所以只要在 Building Phases 里删除 libstdc++.6.0.9.tbd,再重新添加 libc++.tbd 就好了。
    2. 如下图: 1291197-3a744a5e8bca8c95.jpeg

    解决方法如下:

    1. 有可能是你的某个库的连接引用有问题,Build Phases -> Link binary With Libraries,找到这个 删除再加入,然后编译,此时该方法并不能解决本文的问题。😒
    2. 当正在开发时候,cocoapods 移除某一个框架以后,会遇到 ld: library not found for -l xxxx-ios-x.x.x。
      这种情况下是因为将框架移除之后,并没有移除 Build Setting -> Other Linker Flag 中的引用,找到移除之后的框架,删除引用即可。此时确实是找到了 这个 -lstdc++.6.0.9,删除之后,重新编译,然鹅还是不行。😳
    3. 升级 pods 之后,或者打开刚建好的 workspace 文件,会报错 ld: library not found for -lxxx。
      这个情况下是工程里面的设置项覆盖了 pods 中 xcconfig 中的设置,解决办法是在 Build Setting -> Other Linker Flag 中加上 $(inherited),经查看,在 Other Linker Flag 中其实已经添加了这个。所以该方法不奏效。
    4. 后来脑海里面蹦出来 之前看到过有人在 xcconfig 中 删除库的操作,于是就尝试了一下,果不其然,如下: 1291197-9a7cd221cc2bf593.jpeg

    尽然在 Pods-工程名.debug.xcconfig 和 Pods-工程名.release.xcconfig 都 存在这个 stdc++.6.0.9 (纳闷在 Build Setting -> Other Linker Flag 里面删除这个 stdc++.6.0.9 为啥不影响 xcconfig),按照这种方式删除了所有有关的 stdc++.6.0.9 ,然后重新运行,眼前一片光明,再也没有这个错误了。

    one more thing

    • warning:directory not found option 的问题可能是 framework search paths 还有 Library Search Paths 里面并没有这个路径,删除即可。
    • duplicate 就是重复的意思,那么看代码 要删除重复的。

    作者邮件:zhangxmsy@163.com, 有问题联系。

    相关文章

      网友评论

          本文标题:顽固的 “ld: library not found for -

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