我对C和C ++编程非常陌生,并且在软件编程方面经验很少(我的背景是基于Web的)但我正在尝试使用C / C ++和Xcode ...所以我发现了这段代码(以及许多类似的在线变体):
#include <stdio.h>
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是错误的吗?如果有人可以推荐一个更好的编译器,那也会很棒!
答案 0 :(得分:12)
在Xcode中创建新项目时,它会自动为您提供一个包含main()
的起始文件。如果您创建了一个新文件,例如first.c
,然后将测试代码粘贴到其中,那么您将定义main()
两次,并获得该错误。
您需要删除Xcode在新项目中提供的文件(例如main.c
或main.m
),或者将示例代码剪切并粘贴到该文件中,而不是创建新文件之一。
答案 1 :(得分:0)