Xcode,重复符号_main

hug*_*gie 55 xcode

我有重复的符号_main.

问题是它说"在/Users/.../i386/main-B9843B6026D6EFA4.o和/Users/.../i386/main-B9843B6026D6EFA4.o中复制符号_main",XXX和XXX实际上是相同的. o文件.我不知道为什么它认为它是重复的符号,当它是相同的.o ?!

任何帮助表示感谢,谢谢.

hug*_*gie 89

啊..我发现我在Targets/Compiled Sources下有多个条目(在较新的XCode中,它位于Build Phases/Compile Sources下).我删除了它们,问题解决了.多项输入可能与Git合并有关.

  • 如果您不小心#import"someFile.m"而不是#import"someFile.h",也会发生这种情况. (8认同)

dvk*_*kch 23

在我的情况下,我似乎导入了.m文件而不是.h文件.通过编辑解决

#import "Tools.m"
Run Code Online (Sandbox Code Playgroud)

#import "Tools.h"
Run Code Online (Sandbox Code Playgroud)


Ste*_*fan 16

我也有这个问题,它是由我从另一个项目导入的代码引起的.我在项目目录中为"int main"做了一个grep:

grep -nr "int main" .
Run Code Online (Sandbox Code Playgroud)

并找到了

./main.m:13:int main(int argc, char *argv[])
./IMPORTED_DIR/main.m:13:int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

IMPORTED_DIR包含了导致我错误的额外main.m.

我从项目 - >目标 - >构建阶段 - >编译源列表中删除了该文件,然后进行了编译


小智 7

我在使用两个第三方框架时遇到了同样的问题.(AppLovin和Flurry)我通过在构建设置中从"Other Linker Flags"中删除"all_load"来了解这一点.