C 什么';我的makefile有什么问题,最后一行永远不会执行?
我必须创建一个makefile来创建依赖于三个模块的程序C 什么';我的makefile有什么问题,最后一行永远不会执行?,c,makefile,gnu-make,C,Makefile,Gnu Make,我必须创建一个makefile来创建依赖于三个模块的程序prog 我创建这个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
prog
我创建这个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.cmod3.h
从未启动过。我的意思是,最后一行从来没有被执行过,不管它是什么。有线索吗
另一个问题是,prog.o
应该是prog.cmod1.hmod2.hmod3.h
还是我做的方式可以?行$(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
另一个问题只能由您自己回答:无论mod1.h或mod2.h是否发生变化,都有必要重新编译程序c吗?行$(CC)…
必须直接位于程序:
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
另一个问题只能由您自己来回答:无论mod1.h或mod2.h是否更改,都有必要重新编译prog.c吗