2013-11-22 60 views
0

我有兩個C文件:a4.c和a4Defs.h這個簡單的Makefile有什麼問題?

代碼編譯罰款:gcc的-o A4 a4.c a4Defs.h

我已經建立這個簡單的makefile,但是當我做了'make'我得到這個錯誤:

gcc -c a4Defs.h 
gcc -c a4.c 
gcc -o a4 a4.o a4Defs.o 
gcc: error: a4Defs.o: No such file or directory 
make: *** [a4] Error 1 

我的makefile有什麼問題?

a4: a4.o a4Defs.o 
    gcc -o a4 a4.o a4Defs.o 

a4.o: a4.c a4Defs.o 
    gcc -c a4.c 

a4Defs.o: a4Defs.h 
    gcc -c a4Defs.h 

clean: 
    rm -f *.o a4 
+1

實際上,你有什麼文件? acDefs.c或a4Defs.h?描述說.h,makefile說.c – John3136

+0

我的意思是a4Defs.h - 對不起。我改變了它,並更新了我得到的新錯誤消息。有任何想法嗎? –

+2

一開始你不應該試圖編譯.h文件。它們包含在.c文件中。 – John3136

回答

0

a4Defs.h是一個頭文件不是.c文件所以在編譯它沒有任何意義。

您make文件應該是這個樣子

a4: a4.o 
    gcc -o a4 a4.o 

a4.o: a4.c a4Defs.h 
    gcc -c a4.c 


clean: 
    rm -f *.o a4