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  变量赋值       #传入变量值
----------------------------------------------------------

 

posted @ 2022-01-01 16:38  我爱茜茜公主  阅读(134)  评论(0)    收藏  举报