错误:链接器命令失败:架构x86_64的重复符号

时间:2015-08-20 22:10:41

标签: ios objective-c compiler-errors linker-errors

无处不在,出现了这个错误。 链接器命令失败,退出代码为1(使用-v查看调用)

duplicate symbol _HighScoreNumber in:
    /Users/Drizzle/Library/Developer/Xcode/DerivedData/Munch-gfdyumgsjgsmdweirrclsqfltxpt/Build/Intermediates/Munch.build/Debug-iphonesimulator/Munch.build/Objects-normal/x86_64/Menu5.o
    /Users/Drizzle/Library/Developer/Xcode/DerivedData/Munch-gfdyumgsjgsmdweirrclsqfltxpt/Build/Intermediates/Munch.build/Debug-iphonesimulator/Munch.build/Objects-normal/x86_64/Gam4.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我该如何解决这个问题?

我在构建阶段查看了副本,我尝试清理构建并重新运行它,我重新启动了IOS模拟器数据。

2 个答案:

答案 0 :(得分:1)

编译器的错误很明显。导入的文件中有重复的符号。您同时导入了Menu5.hGam4.h,这两个文件都包含HighScoreNumber的定义,因此编译器很困惑。

如果重复定义,请删除一个。或者您可以将HighScoreNumber定义移动到单个头文件中。

答案 1 :(得分:0)

我非常确定您的解决方案是将该变量移动到.m文件中,并将其从两个标头中删除。如果您想引用(很快)在源文件中定义的高分,从第二个源文件,您可以在该第二个源文件中声明“extern int HighScoreNumber;”。