我对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
),或者将示例代码剪切并粘贴到该文件中,而不是创建新文件.