Makefile 自动化变量以及模式匹配

1. 自动化变量

Makefile中的自动化变量可以大大简化Makefile的书写,使其更加简洁和易于维护。这些变量在规则的命令中被自动赋值,根据当前目标和依赖的上下文来确定具体的值。下面是一些常用的自动化变量:

bash 复制代码
$@  " 表示目标文件
bash 复制代码
$<  " 表示第一个依赖文件
bash 复制代码
$^  " 表示所有的依赖文件

2. 模式匹配

使用模式匹配通常能匹配多个目标文件,避免了重复书写

2.1 匹配的规则

bash 复制代码
%.target : %.source
	<command>

其中 % 是一个通配符,代表任意数量的字符。比如,要从多个.c文件编译出.o文件,你可以使用如下模式规则:

bash 复制代码
%.o : %.c
	$(CC) $(CFLAGS) -c $< -o $@

2.2 匹配的规则

多模式匹配

bash 复制代码
%.o: %.c %.h
	$(CC) $(CFLAGS) -c $< -o $@

这条规则意味着每个.o文件不仅取决于对应的.c文件,还取决于同名的.h文件。如果.c或.h文件发生变化,对应的.o文件将被重新编译。

相关推荐
kaoa0001 天前
Linux入门攻坚——62、memcached使用入门
linux·运维·memcached
heze091 天前
sqli-labs-Less-18自动化注入方法
mysql·网络安全·自动化
model20051 天前
alibaba linux3 系统盘清理
linux·运维·服务器
WG_171 天前
Linux:动态库加载总结_进程间通信+进程池 + 进程IPC(27/28/29/30/31/32)
linux·运维·服务器
一只懒鱼a1 天前
docker部署nacos (版本2.3.2)
运维·docker
小赵还有头发1 天前
安装 RealSense SDK (驱动层)
linux
Root_Hacker1 天前
include文件包含个人笔记及c底层调试
android·linux·服务器·c语言·笔记·安全·php
微学AI1 天前
内网穿透的应用-告别局域网束缚!MonkeyCode+cpolar 解锁 AI 编程新体验
linux·服务器·网络
信创天地1 天前
国产堡垒机部署实战:以奇安信、天融信为例构建运维安全三重防线
运维·安全
呉師傅1 天前
东芝3525AC彩色复印机CC219测试页打印方法【实际操作】
运维·网络·windows·计算机外设·电脑