我是靠谱客的博主 单纯彩虹,最近开发中收集的这篇文章主要介绍library not found for -lstdc++.6.0.9Xcode10升级后编译报错方案一方案二,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

library not found for -lstdc++.6.0.9

  • Xcode10升级后编译报错
  • 方案一
  • 方案二

Xcode10升级后编译报错

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

如果你的工程中如果依赖 libstdc++,无论是你本身的功能用 C++ 跨平台编写,还是你引入了某个 SDK 其内部依赖这个 libstdc++,都会导致整个工程编译不通过,报出 Undefined symbols

原因是苹果在 Xcode10 和 iOS12 中移除了 libstdc++ 这个库,由 libc++ 这个库取而代之,苹果的解释是 libstdc++ 已经标记为废弃有5年了,建议大家使用经过了 llvm 优化过并且全面支持C++11的 libc++ 库。
相关文件链接:https://pan.baidu.com/s/1V9rgDBbxTaWFdQtRY9UbOA

方案一

拷贝缺失的libstdc++
进入下面的路径:

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

然后把相应的文件放到这个路径下。
注意:拷贝libstdc++之后真机就可以编译通过了,但在模拟器运行依然报错。解决方案如下:
进入下面的路径:

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

然后把相应的文件放到这个路径下。
进入下面的路径:

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

把相应的文件拷贝到这个路径下就可以。

方案二

如果你自己的业务模块使用了 libstdc++ ,那么就把模块代码重新调整为依赖 libc++ ,然后重新检查是否存在问题,重新编译

如果你引用的三方库使用了 libstdc++ ,那么向三方库寻求支持,进行升级

最后

以上就是单纯彩虹为你收集整理的library not found for -lstdc++.6.0.9Xcode10升级后编译报错方案一方案二的全部内容,希望文章能够帮你解决library not found for -lstdc++.6.0.9Xcode10升级后编译报错方案一方案二所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部