我必须创建一个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
我的问题是这条线路从未开通过。我是说,不管是什么,最后一句话从来没有被执行过。有线索吗?
另一个问题,是
prog
应该Mod3.o : Mod3.c Mod3.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发生变化时重新编译prog.c?
关于c - 我的makefile有什么问题,最后一行从不执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17699002/