makefile语法(% $@ $< $^ .PHONY = := ?= +=)
通配符:%.o
上节课示例
test:a.o b.o
gcc -o test a.o b.o
a.o:a.c
gcc -c -o a.o a.c
b.o:b.c
gcc -c -o b.o b.c
使用通配符后
test:a.o b.o
gcc -o test a.o b.o
%.o:%.c
gcc -c -o $@ $<
名词解释:
$@ 表示目标
$< 表示第一个依赖文件
$^ 表示所有依赖文件
----------------------------------------------------------
假想目标:.PHONY
test:a.o b.o
gcc -o test a.o b.o
%.o:%.c
gcc -c -o $@ $<
clean:
rm *.o test
.PHONY: clean
make [目标]
若无目标,默认第一个目标
如果目录内有跟目标一样的文件名,make [],会不起作用,故建议使用.PHONY
----------------------------------------------------------
即时变量、延时变量,export
简单变量(即时变量)
A := 1 := 表示A的值在定义时即确定
B = C = 表示B在使用到时才确定,在使用变量时才确定,不论C变量在在B前还是在B后;假如C被多次赋值,以最后一次为准
?= 延时变量,第一次定义时才起效,如果前面该变量已定义则忽略这句
+= 表示附加,它是即时变量还是延时变量取决于前面的定义
make 变量赋值 #传入变量值
----------------------------------------------------------
如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为你正在走上坡路,走过去,你就一定会有进步。如果,你正在埋怨命运不眷顾,开导自己:命,是失败者的借口;运,是成功者的谦词。命运从来都是掌握在自己的手中,埋怨,只是一种懦弱的表现;努力,才是人生的态度。