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

相关推荐
来一杯龙舌兰1 小时前
【Kubernetes】从零搭建K8s集群:虚拟机环境配置全指南(DNS/网络/防火墙/SELinux全解析一站式配置图文教程)
linux·网络·kubernetes
穆易青1 小时前
2025.06.20【pacbio】|使用Snakemake构建可重复的PacBio全基因组甲基化分析流程
java·运维·服务器
A.A呐2 小时前
【Linux第四章】gcc、makefile、git、GDB
linux·c语言·开发语言·c++·git
努力成为DBA的小王2 小时前
CVE-2024-6387漏洞、CVE-2025-26465漏洞、CVE-2025-26466漏洞 一口气全解决
运维·服务器
苹果醋33 小时前
vuex4.0用法
java·运维·spring boot·mysql·nginx
Fireworkitte3 小时前
如何使用 Dockerfile 创建自定义镜像
运维·docker·容器
大数据张老师3 小时前
自动化性能回退机制——蓝绿部署与灰度发布
运维·系统架构·自动化·ai架构
A-花开堪折3 小时前
01-驱动开发开篇
linux·嵌入式硬件
程序员JerrySUN5 小时前
Linux 内核同步管理全解:原理 + 实战 + 考点
linux·运维·服务器
Murrays5 小时前
【技能证书】适用于自动化方向从业者
运维·自动化