2013-07-17 33 views
0

我必須創建一個makefile來創建依賴於三個模塊的程序prog我的makefile有什麼問題,最後一行永遠不會執行?

我創建這個Makefile:

CC = gcc 
CFLAGS = -W -Wall 

all : prog 

prog : prog.o mod1.o mod2.o Mod3.o 
prog.o : prog.c 
mod1.o : mod1.c mod1.h 
mod2.o : mod2.c mod2.h 
Mod3.o : Mod3.c Mod3.h 

    $(CC) $(CFLAGS) prog.o mod1.o mod2.o Mod3.o -o prog 

clean : 
    rm prog 
    rm *.o 

我的問題是,這條線Mod3.o : Mod3.c Mod3.h從來沒有推出。我的意思是,最後一行從來沒有執行過,不管它是什麼。任何線索?

另一個問題,prog.o應該是prog.c mod1.h mod2.h Mod3.h或我做的方式是好的?

回答

4

$(CC) ....必須是直接後面prog :

prog : prog.o mod1.o mod2.o Mod3.o 
    $(CC) $(CFLAGS) prog.o mod1.o mod2.o Mod3.o -o prog 

prog.o : prog.c 
mod1.o : mod1.c mod1.h 
mod2.o : mod2.c mod2.h 
Mod3.o : Mod3.c Mod3.h 

其他問題只能自己回答:是neccessary重新編譯prog.c中,每當mod1.h或mod2.h改不?