2012-03-27 130 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(),但我沒有認爲這關係到你所看到的症狀)

有一對夫婦的計算器問題,可能是密切相關的你: