1

我创建了这个混合使用 Objective C 和 C++ 的静态库,假设它以 lib.a 的形式出现。

当我在另一个新的 XCode 项目中使用它时,为什么我必须设置“编译源为”Objective C++?

我不明白为什么我的新项目需要在库已经编译后编译为 Objective C++。

所以当我编译时,如果我不将它设置为Objective C++,我会得到这些错误:

架构 armv7 的未定义符号:“___dynamic_cast”,引用自:lib.a(CommSock.o) 中的 CommSocket::Handover(CCommSocket&) CSocketComm::Handover(CCommSocket&) 在 lib.a(SocketComm.o)

4

1 回答 1

0

您可能会通过-lc++为可执行目标添加“其他链接器标志”部分来强制链接 c++ 运行时库来修复它。

于 2013-05-03T23:05:02.807 回答