此处多次介绍了链接阶段的重复符号。但我没有找到这个案例的答案:
我有自己的用 c++ 编写的用于 Objective-c 应用程序的库。要使用 lib 中的 c++ 逻辑,我将文件扩展名从更改.m
为.mm
wich 就像一个魅力。当我想要多个.mm
文件时,问题就开始了。链接器向我抛出错误duplicate symbol __instance in:
和ld: 1 duplicate symbol for architecture i386
.
- 我没有
__instance
在 c++ 代码中的任何地方使用或声明符号。 - 我不需要使用或导入 c++ 代码来获取此错误。
- 编译源阶段没有重复文件
- 项目中的每个目标都设置了 iOS 架构,而不是 i386