Cocoa应用中std::terminate未定义。

25
我有一个编译和链接正常的Cocoa应用程序。最近我把一些代码拆分成一个静态库,然后又试图将libMyLib.a库链接回我的原始程序。
现在我收到了一个链接错误。
Undefined symbols for architecture x86_64:
  "std::terminate()", referenced from:

引用了原本存在于我的主项目中的其中一个源模块,现在它存在于库中。

我试图返回去匹配每个编译器和链接器设置,以查看哪个不同,但我似乎无法确定。我的直觉是我正在链接C STD,而需要C ++ STD,但所有内容都使用C99编译器与标准库。

有什么想法吗?

谢谢!


7
在libc++.dylib中进行链接修复了这个问题。 - WebDrive
2
WebDrive,和@Scicare,请添加答案并分别授予积分和悬赏。 - Levente Kurusa
1个回答

41

在libc++.dylib中链接修复了该问题。


你怎么链接它? :) - Tom Roggero
2
将libc++.dylib添加到构建选项的链接器部分的库列表中。 - WebDrive
对于 Xcode 7 及更高版本,库的名称是 libc++.tbd 而不是 libc++.dylib。 - DawnSong
谢谢 :) 它像魔法一样运行 :) - Sohil R. Memon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接