Makefile的核心

2021-10-31  本文已影响0人  懒生活

Makefile的核心

Makefile最重要的是描述文件的依赖关系

target: components
tab rule

第一行表示依赖关系,会声明目标和依赖文件,第二行表示rule。当依赖文件发生变化的时候,目标文件怎么生成,是通过rule描述的。注意rule之前必须有且只有一个tab。
makefile语法中用$@表示目标文件, 用$^表示所有依赖文件,用$<表示第一个依赖文件。这样表示方便一些通用规则的编写。比如规则gcc -o $@ $^这就表示把所有依赖的o文件都链接起来成目标文件。

语法

两个函数 wildcard patsubst

SRC = $(wildcard ./*.c)表示匹配目录下所有的c文件,并将其赋值给SRC变量。
OBJ = $(patsubst %.c, %.o,$(SRC))取出SRC中所有值,然后将.c替换成.o,最后赋值给OBJ变量。等效于OBJ = $(SRC:%.c=%.o)

.c.o:这个表示所有的.c文件都依赖于同名的o文件。

上一篇 下一篇

猜你喜欢

热点阅读