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

Tho*_*arn 13 c xcode6

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

#include <stdio.h>

int main()
{
    printf ("Test");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然而,当我在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)
Run Code Online (Sandbox Code Playgroud)

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

Cro*_*man 12

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

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