对一些关于makefile的下细节进行了一些总结。
66.Makefile定义变量:objects = main.o kbd.o command.o display.o \
1)insert.o search.o files.o utils.o ,调用这个变量,用$(objects)。
2)反斜杠是换行符的意思,方便我们大家理解代码。
3)引用其他的makefile用include比如:include foo.make a.mk b.mk c.mk e.mk f.mk 。make 命令开始时,会把找寻 include 所指出的其它 Makefile,并把其内容安置在当前 的位。就好像 C/C++的#include 指令一样。如果文件都没有指定绝对路径或是相对路径的话, make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make 还会在下面的几个 目录下找。
4)用通配符来表示一系列的文件,如(*.c)就代表一系列的.c文件。
5)Makefile的变量其实就是c/c++中的宏定义
6)Makefile 文件中的特殊变量“VPATH”就是完成这个功能的,
eg:VPATH = src:../headers 。
7)搜寻路径可以用%,%的意思是匹配0或若干字符。
8).PHONY显示地指明一个目标是,伪目标。
9)$<表示所有的依赖的目标集。$@表示目标集。$@依赖于$<。
10)Filter表在makefile中为过滤的函数,只保留自己定义的文件格式,其他的不要。
11)自动生成依赖关系。main.o :main.c fun.h可以用main.o -M main.c自动的去找到相应调用的头文件。
12)$$$$表示一个随机的编号,eg:1334.
13)$(sources:.c=.d)把所有.c的文件格式都替换成.d的格式。