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 天前
Linux网络连接之ss命令详细使用指南(从入门到运维实战)
linux·运维·服务器·网络·ssh·网络连接·ss命令
爱华晨宇1 天前
Xshell高效运维实战指南
运维·服务器
未来之窗软件服务1 天前
服务器运维(四十一)日服务器linux-audit.log分析工具—东方仙盟
linux·运维·服务器·服务器运维·仙盟创梦ide·东方仙盟
志栋智能1 天前
AI驱动的自动化运维机器人:从“数字劳动力”到“智能协作者”的进化
大数据·运维·网络·人工智能·机器人·自动化
guizhoumen1 天前
建站从零开始之域名、服务器和CMS网站程序的选择
运维·服务器·网络
笨蛋不要掉眼泪1 天前
OpenFeign远程调用详解:声明式实现、第三方API集成与负载均衡对比
java·运维·负载均衡
Codefengfeng1 天前
Kali安装工具通用教程
运维·服务器
姜行运1 天前
[Linux]基础指令3
linux·运维·服务器
dashizhi20151 天前
服务器共享文件设置权限、共享文件防止删除复制打印?
运维·服务器
xiaoliuliu123451 天前
银河麒麟V10安装 zlib-1.2.11-20.ky10.x86_64教程(含依赖解决)
linux·运维·服务器