2013-11-22 38 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