【发布时间】:2023-03-28 19:05:01
【问题描述】:
我刚刚关注了一个关于创建 Flappy Bird 游戏的 Youtube 视频,一切都很顺利,直到我在 ViewController.m 中编写了代码,我意识到我遇到了一个非常烦人的错误,我的代码看起来与视频的代码一模一样我猜。
duplicate symbol _HighScoreNumber in:
/Users/SRaheem/Library/Developer/Xcode/DerivedData/Flappy_Kurd-ajkqjbpuoredvudzovmfygqfuasr/Build/Intermediates/Flappy Kurd.build/Debug-iphonesimulator/Flappy Kurd.build/Objects-normal/x86_64/Game.o
/Users/SRaheem/Library/Developer/Xcode/DerivedData/Flappy_Kurd-ajkqjbpuoredvudzovmfygqfuasr/Build/Intermediates/Flappy Kurd.build/Debug-iphonesimulator/Flappy Kurd.build/Objects-normal/x86_64/ViewController.o
ld: 1 duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
【问题讨论】:
-
从 Game.m 和 ViewController.m 发布您的代码。或者在这些文件中搜索“HighScoreNumber”,错误说它是在同一范围内的两个地方定义的。
-
这里是 Game.m pastie.org/private/aclehtrzjw3bbaklqldbog,这里是 ViewController.m pastie.org/private/zotfnbievnls9jjpnpi8ta
-
正如木马所说,HighScoreNumber 可能在 game.h 和 ViewController.h 中都声明了。您需要删除其中一个声明或将其标记为“extern”。如果您没有完全删除,则需要在 Game.m 和 ViewController.m 文件中导入带有剩余声明的头文件。 trojanfoe 的回答是正确的。
标签: ios objective-c xcode xcode6