莫名其妙地出现了这个错误。链接器命令失败,退出代码为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模拟器数据。
编译器的错误很明显。导入的文件中有重复的符号。您同时导入了Menu5.h
和Gam4.h
,这两个文件都包含了HighScoreNumber
的定义,导致编译器混淆了
如果重复定义,则删除一个。或者您可以将HighScoreNumber
定义移动到单个头文件中。
我很确定您的解决方案是将该变量移动到您的.m文件中,并将其从两个头文件中删除。如果您想从第二个源文件引用在源文件中定义的高分,您可以在第二个源文件中声明" extern int HighScoreNumber;
"。