为什么我需要将-lstdc ++添加到我的其他链接器标志?

时间:2012-12-19 21:01:24

标签: c++ objective-c linker

answer to this question让我意识到我需要在我的“其他链接器标志”中添加-lstdc ++以使我的项目能够编译。

如果我将代码直接编译到我的项目中,它运行正常。如果我将它构建到框架中并包含该框架,它会抱怨:

Undefined symbols for architecture armv7:
  "std::terminate()", referenced from: ...

添加-lstdc ++似乎解决了这个问题。它的功能很棒,但是有人可以帮助我理解为什么我在将代码视为框架时才会看到这个问题吗?

1 个答案:

答案 0 :(得分:1)

Jerry Coffin's comment是有用的答案。编译器检测到.mm扩展并切换到Obj-C ++用于框架构建,但没有迹象表明包含框架的构建也应该以这种方式编译。