这里我们用Makefile的后缀规则和模式规则来重写.c文件转为.o的规则, 即.c文件编译成.o目标文件时, 再输出多一条语句, 例如"haha"或者"bobo"
(1)
后缀规则的Makefile写法:
#Makefile
.SUFFIXES: .c
.c.o:gcc -c $<
@echo haha
app: aa.o aa1.o aa2.o
gcc -o app.out aa.o aa1.o aa2.o
aa.o: aa.c aa1.o aa2.o
aa1.o: aa1.c
aa2.o: aa2.c
clean:
@rm *.o && \
echo delete the object files
运行结果如下:
(2)
模式规则的Makefile写法
#Makefile
#%.c: %.o 书本上是这个写法, 但我的系统是Centos 6.4, 这样写会报错, 改成下面就通过了
%.c %.o:
gcc -c $<
@echo bobo
app: aa.o aa1.o aa2.o
gcc -o app.out aa.o aa1.o aa2.o
aa.o: aa.c aa1.o aa2.o
aa1.o: aa1.c
aa2.o: aa2.c
clean:
@rm *.o && \
echo delete the object files
运行结果如下: