一、Makefile 定义变量
(1)用户自定义变量
- 变量定义直接用 =
- 使用变量值用 $(变量名)
-
如:下面是变量的定义和使用 foo = abc // 定义变量并赋值 bar = $(foo) // 使用变量, $(变量名)
(2)Makefile自带变量
-
CC = gcc #arm-linux-gcc CPPFLAGS : C预处理的选项 -I CFLAGS: C编译器的选项 -Wall -g -c LDFLAGS : 链接器选项 -L -l
(3)自动变量(只能在命令中使用)
-
$@: 表示规则中的目标 $<: 表示规则中的第一个条件 $^: 表示规则中的所有条件, 组成一个列表, 以空格隔开, 如果这个列表中有重复的项则消除重复项。
二、makefile 模式规则
- 比如: main.o:main.c fun1.o: fun1.c fun2.o:fun2.c, 说的简单点就是: xxx.o:xxx.c
- 直接使用替代:%.o : %.c
注意:此时Makefile文件可替换成这样:(此时还可以简化)
二、makefile 函数
-
1.wildcard – 查找指定目录下的指定类型的文件 src=$(wildcard *.c) //找到当前目录下所有后缀为.c的文件,赋值给src 2.patsubst – 匹配替换 obj=$(patsubst %.c,%.o, $(src)) //把src变量里所有后缀为.c的文件替换成.o
注意:此时Makefile文件可替换成这样:
一、Makefile文件制作-注意事项
- Makefile中使用“#”注释
- 使用 touch file.c 改变了源文件的修改时间,则file.c源文件将被Make重新编译;
标签:文件,%.,变量,src,Makefile,替换成,NO.4,制作 From: https://www.cnblogs.com/ChenYuansong/p/17737735.html