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

Why can't I get rid of libstdc++?

自从升级到 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++

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

是什么偷偷把 libstdc++ 放进去的?任何帮助将不胜感激!

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

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

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