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

时间:2018-09-10 11:43:17

标签: ios xcode linker xcode10

自从升级到xcode 10 beta 6后,我收到了错误消息

  

ld:-lstdc ++找不到库
  clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我知道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 ++是什么?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

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

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

如果其他任何人都无法确定正在使用libstdc++的依赖项,那么我建议从目标的链接器标志中删除$(inherited)。这将导致链接器在使用它的位置报告缺少的符号,从而放弃存在问题的库。