ld:1个用于体系结构x86_64的重复符号

我对C和C ++编程非常陌生,并且在软件编程方面经验很少(我的背景是基于Web的)但我正在尝试使用C / C ++和Xcode …所以我发现这段代码(以及许多类似的在线变体):

#include  int main() { printf ("Test"); return 0; } 

然而,当我在Xcode中编译它时,我收到以下错误:

 > duplicate symbol _main in: > /Users/thomas/Library/Developer/Xcode/DerivedData/test-etqojvxbxhxjqeggdzkbfufvbeza/Build/Intermediates/test.build/Debug/test.build/Objects-normal/x86_64/first.o > /Users/thomas/Library/Developer/Xcode/DerivedData/test-etqojvxbxhxjqeggdzkbfufvbeza/Build/Intermediates/test.build/Debug/test.build/Objects-normal/x86_64/main.o > ld: 1 duplicate symbol for architecture x86_64 clang: error: linker > command failed with exit code 1 (use -v to see invocation) 

也许Xcode对于我作为新手使用是错误的吗? 如果有人可以推荐更好的编译器,那也会很棒!

当您在Xcode中创建一个新项目时,它会自动为您提供一个包含main()的起始文件。 如果您创建了一个新文件,例如first.c ,然后将测试代码粘贴到其中,那么您将定义main()两次,并获得该错误。

您需要删除Xcode在新项目中提供的文件(例如main.cmain.m ),或者将示例代码剪切并粘贴到该文件中,而不是创建新文件。