ios - 为什么我不能摆脱 libstdc++?

标签 ios xcode linker xcode10

自升级到 xcode 10 beta 6 后我收到错误

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

我知道 libstdc++ 已从 iOS 模拟器中删除,但项目和所有目标都将 C++ Standard Library 设置为 libc++,不是 libstdc++

该项目没有在 Other Linker Flags 中设置任何内容。目标的 Other Links Flags 摘要包括 -stdlib=libstdc++

Summary of Other Linker Flags for target

但是当我双击它进行编辑时,它不在列表中。

Expanded Other Links Flags for target

libstdc++ 中偷偷摸摸的是什么?任何帮助将不胜感激!

最佳答案

事实证明,问题是我的一个依赖项正在使用 libstdc++,因此 Cocoapods 将 -stdlib=libstdc++ 添加到项目的链接器标志中。

解决方案是将依赖项更新为针对 libc++ 构建的较新版本。

如果其他人无法确定哪个依赖项正在使用 libstdc++,那么我建议从目标的链接器标志中删除 $(inherited)。这将导致链接器从使用它的地方报告丢失的符号,从而给出哪个库有问题。

关于ios - 为什么我不能摆脱 libstdc++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52257049/

相关文章:

ios - 当他输入 CLLocation 时如何通知用户?

ios - 自定义后退按钮有额外的不需要的空间

ios - 您如何快速访问用户联系人的电话号码?

c - 在 STM32 中从 RAM 执行代码

C++ 程序无法构建。获取架构错误的 undefined symbol

ios - AVUrlAsset 和 WebVTT

iphone - 回调的代表数组不安全?

ios - 为什么有些库需要嵌入而有些不需要?

ios - 在 Xcode 中查看 TestFlight 崩溃日志

asp.net - 如何防止直接链接到一些 pdf 文件?