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

相关推荐
unirst1985007几秒前
Mysql官网下载Windows、Linux各个版本
linux·数据库·mysql
嵌入小生0071 分钟前
线程 --- 嵌入式(Linux)
linux·vscode·vim·嵌入式·线程·进程
wsad05328 分钟前
Linux Shell脚本执行方式全解析:source、点号、路径、bash与exec的区别
linux·运维·bash·shell
Whoami!9 分钟前
⓬⁄₅ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ 寻觅暴露的机密信息实现提权
linux·网络安全·信息安全·权限提升
济61714 分钟前
ARM Linux 驱动开发篇--嵌入式 Linux LED 驱动开发实验(2)--Linux 下 LED 灯驱动开发代码编写-- Ubuntu20.04
linux·arm开发·驱动开发
草莓熊Lotso17 分钟前
Linux 磁盘基础:从物理结构到 CHS/LBA 寻址,吃透数据存储底层逻辑
linux·运维·服务器·c++·人工智能
叠叠乐24 分钟前
EasyTier 免费自建自用5$每个月的服务器
linux·运维·bash
草莓熊Lotso27 分钟前
Qt 核心事件系统全攻略:鼠标 / 键盘 / 定时器 / 窗口 + 事件分发与过滤
运维·开发语言·c++·人工智能·qt·ui·计算机外设
yueyin12345632 分钟前
Linux下MySQL的简单使用
linux·mysql·adb
DeeplyMind9 小时前
第12章 Docker存储机制(重要)
运维·docker·容器