2012-03-27 132 views
-1

我刚开始学习C,并且写了我的Hello World程序:C编译器问题?

#include <stdio.h> 
main() 
{ 
    printf("Hello World"); 
    return 0; 
} 

当我运行代码,我得到一个非常长的错误:

Apple Mach-O Linker (id) Error 

Ld /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj normal x86_64 
     cd /Users/Solomon/Desktop/C/CProj 
     setenv MACOSX_DEPLOYMENT_TARGET 10.7 
     /Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -F/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -filelist /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/CProj.LinkFileList -mmacosx-version-min=10.7 -o /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj 

    ld: duplicate symbol _main in /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/helloworld.o and /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/main.o for architecture x86_64 
    Command /Developer/usr/bin/clang failed with exit code 1 

我正在运行的Xcode

我应该重新安装DevTools吗?

回答

5

你试过

int main()甚至int main(int argc, char**argv)

+2

正确的声明是'int main(void)'和'int main(int argc,char * argv [])'(或等价的),但不太可能将它声明为'main()'(这是正确的在C的早期版本中,并且可能仍然被大多数编译器接受)会导致该特定错误。 – 2012-03-27 03:30:57

+0

Solomon081,这确实能解决您的问题吗? – 2012-03-27 07:44:44

2

错误消息指示符号_main(它是指main()函数)被定义两次,一次在helloworld.o中,一次在main.o中。

您可能在同一个项目中有两个源文件,helloworld.cmain.c,并且都定义了一个名为main的函数。

程序中只能有一个main函数。从Xcode项目中删除这两个源文件(和相关的目标文件)中的一个应该可以解决这个问题。 (我自己也没有用过Xcode,也许别人可以告诉你怎么做,如果不是很明显的话)。

(并且正确的定义是int main(void),不是老式的main(),但我没有认为这关系到你所看到的症状)

有一对夫妇的计算器问题,可能是密切相关的你: