一、书写时明确几个问题:目标文件?目标依赖的文件列表?更新目标文件所需的命令?ui
target:规则的目标。 prerequisite:规则依赖的条件 command:规则的命令行。命令行
二、每一条命令以[Tab]开头。每一条命令占用一行。blog
三、反斜线\是换行符,在\后面不能加空格!递归
四、使用指定变量,如obj=main.o kbd.o command.o display.o \get
insert.o search.o files.oit
五、cc -c main.c -o main.o 是makefile的自动推导规则,不用写出来,编译时会默认执行。编译
六、“include”指示符告诉make中止当前读取的Makefile,转向“include”指定的一个或者多个文件。include是以一个或者多个空格开始,切记不能以[Tab]开始,不然将会当作一个命令 来处理。变量
七、报错方式:file
八、变量MAKEFILES(少用)。指定环境变量,功能相似于include,主要用于make的递归调用的通讯,多用于定义通用规则和变量文件(相似于C中的全局变量)。command
九、makefile中遇到双冒号规则时会无条件的对目标文件进行更新。可是若是这个规则的目标是一个makefile文件,make会忽略这个规则