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文件将被重新编译。

相关推荐
zzzyyy5381 分钟前
Linux进程控制(2)
linux·服务器
热爱Liunx的丘丘人2 分钟前
PlayBook常用的模块编写
linux·服务器·ansible
wellc2 分钟前
Nginx作用以及应用场景
运维·nginx
SilentSamsara4 分钟前
etcd 运维:数据一致性、备份恢复与性能调优
运维·服务器·数据库·kubernetes·kubectl·k8s·etcd
lclcooky7 分钟前
Nginx代理到https地址忽略证书验证配置
运维·nginx·https
前端达人10 分钟前
第12课:MCP 与 Hooks——给 Claude Code 装上插件和自动化引擎
运维·自动化
RH23121118 分钟前
2026.4.21Linux 共享内存
linux·服务器·网络
wanhengidc21 分钟前
云主机的核心原理与架构
运维·服务器·科技·游戏·智能手机·架构
喜欢流萤吖~22 分钟前
Nacos 配置中心:微服务的配置管家
java·运维·微服务
Han.miracle23 分钟前
eureka的使用负载均衡
运维·负载均衡