我刚刚将静态库/框架中的一个 Objective-C 类实现文件从 .m 重命名为 .mm ,然后链接失败并出现以下错误:
Undefined symbols for architecture armv7s: "___gxx_personality_sj0"
我可以通过将-lc++
(libc++.dylib) 添加到应用程序目标的其他链接器标志来解决它。但我的问题确实是:为什么会失败?为什么这个问题只出现在静态库代码中,而不是重命名应用程序的实现文件之一时?
除了添加之外还有其他解决方案-lc++
吗?
注意:该类的实现不包含任何代码。此类中也没有使用或导入 C++ 代码,项目中的其他任何地方也没有使用 C++ 代码。