Linux环境下的make和makefile详解(二)

来源:互联网 发布:java修改静态变量的值 编辑:程序博客网 时间:2024/06/05 00:25

一、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规则没有依赖,不属于编译的内容,只是完成一个指定的动作。

0 0