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

相关推荐
China_Yanhy几秒前
运维日记 - 猛男的AI拓荒录:Fabric (GitHub: danielmiessler/fabric) —— 让 AI 回归 Unix 哲学的终端神器
运维·人工智能·fabric
i学长的猫1 分钟前
PM2 管理 Cloudflared 隧道 Neo-mac 及后台运行
linux·编辑器·vim
记录无知岁月2 分钟前
【Linux】bash脚本使用
linux·bash
爆更小哇3 分钟前
自动化测试避坑:iframe 嵌套页面定位元素失败问题全解析
selenium·自动化·测试用例
GIOTTO情5 分钟前
2026小红书投流新规下,基于Infoseek API的媒介投放自动化方案
java·linux·开发语言
FIT2CLOUD飞致云5 分钟前
新增QQ频道与vLLM管理功能,1Panel v2.1.4版本发布
linux·服务器·ai·开源·1panel
Night_Elf7 分钟前
OpenClaw:完全零成本在Windows本机部署OpenClaw免费大模型指南
经验分享·自动化·运维开发·程序员创富
wbs_scy9 分钟前
Linux 基础 IO 初步解析:从 C 库函数到系统调用,理解文件操作本质
linux·运维·服务器
袁煦丞 cpolar内网穿透实验室14 分钟前
Portainer可视化玩转 Docker 全流程。cpolar 内网穿透实验室第 737 个成功挑战
运维·docker·容器·远程工作·内网穿透·cpolar
广州服务器托管15 分钟前
WIN11中将控制面板固定到开始菜单的方法
运维·开发语言·windows·计算机网络·可信计算技术