一、Makefile的示例
objects = main.o mouse.o command.o display.o
CC = gcc
CFLAGS = -Wall -O2 -g
game : $(objects)
$(CC) -o edit $(objects)
main.o : defs.h
mouse.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
.PHONY : clean
clean :
$(RM) edit $(objects)
二、Makefile的示例说明
game : $(objects) # 定义game的生成规则
$(CC) -o edit $(objects)
main.o : defs.h # 定义main.o的规则,包含隐含规则
mouse.o : defs.h command.h # 定义mouse.o的规则,包含隐含规则
command.o : defs.h command.h
display.o : defs.h buffer.h
.PHONY : clean
clean : # 定义clean的规则,无依赖
$(RM) edit $(objects)
game的生成规则包含了规则的三个基本要素:目标、依赖、命令;main.o等规则没有命令,属于隐含规则(implicit rule)。clean规则没有依赖,不属于编译的内容,只是完成一个指定的动作。