Makefile 之 自动化变量

作用范围只在这条规则以及连带规则中,所以其值也只在作用范围内有效。而不会影响规则链以外的全局变量的值。

"@" 表示目标的集合,就像一个数组,"@"依次取出目标,并执于命令。

"\<"和"@"则是自动化变量,

"$<"表示所有的依赖目标集(也就是"foo.c bar.c"),

"$@"表示目标集(也就是"foo.o bar.o")。

%.o : %.c

$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@

其中,"@"表示所有的目标的挨个值,"<"表示了所有依赖目标的挨个值。这些奇怪的变量我们叫"自动化变量".

"$@ 扩展成当前规则的目的文件名,

"$< 扩展成依靠列表中的第一个依靠文件,

"$^ 扩展成整个依靠的列表(除掉了里面所有重复的文件名)。利用这些变量,

"自动环变量"$?"在这里表示依赖文件列表中被改变过的所有文件。

'$@ 表示目标文件

'$^ 表示所有的依赖文件

'$< 表示第一个依赖文件

'$? 表示比目标还要新的依赖文件列表

相关推荐
冷曦_sole几秒前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒3 分钟前
Linux(二)_清理空间
linux·运维·服务器
云川之下13 分钟前
【linux】 unshare -user -r /bin/bash命令详解
linux·bash·unshare
热心市民运维小孙30 分钟前
Ubuntu重命名默认账户
linux·ubuntu·excel
Jackey_Song_Odd1 小时前
解决Ubuntu下无法装载 Windows D盘的问题
linux·ubuntu
乔巴不是狸猫2 小时前
第11周作业
linux
Bessssss3 小时前
centos权限大集合,覆盖多种权限类型,解惑权限后有“. + t s”问题!
linux·运维·centos
silver6873 小时前
Linux 下的 GPT 和 MBR 分区表详解
linux
R-sz4 小时前
14: curl#6 - “Could not resolve host: mirrorlist.centos.org; 未知的错误“
linux·python·centos
code_abc4 小时前
Shell 脚本编程基础:变量
linux