linux之系统编程 makefile 2个函数和clean

287人浏览   2024-04-19 11:36:08

1.makefie 2个函数:wildcard 和patsubst

src=$(wildcard *.c);找到当前目录下所有后缀为.c的文件赋值给src (wildcard是一个通配符)

obj=$(patsubst %.c,%.c,$(src)):把src变量里所有后缀为.c的文件替换成.o,是将参数3中包含参数1的部分,替换为参数2

2.clean后面可以跟删除文件的动作,他是没有依赖的,如:

clean:

- rm -rf $(obj)a.out rm前面的-作用是删除不存在的文件时,不报错,顺序执行结束。

3.3个自动变量:

$@:在规则的命令中,表示规则中的目标;

$<:在规则的命令中,表示第一个依赖条件,如果将该变量应用在模式规则中,它可以将依赖条件列表中的依赖一次取出,套用模式规则。

$^:在规则的命令中,表示所有依赖条件.

4.模式规则

%.o:%.c

gcc -c $< $@

5.静态模式规则

$(obj):%.o:%.c

gcc -c $< $@

伪目标

.PHONY: clean ALL

警告命令:(可以在命令后面加入如下参数)

-Wall -g


相关推荐