Makefile 之 自动化变量

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

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

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

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

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

%.o : %.c

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

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

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

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

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

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

'$@ 表示目标文件

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

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

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

相关推荐
木古古1822 分钟前
搞一个高效的c/c++开发环境,工具VIm+自研vim插件+Shell脚本
linux·编辑器·vim
茫忙然1 小时前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
一起逃去看海吧2 小时前
dify-03
java·linux·开发语言
fengyehongWorld2 小时前
Linux 根据端口进行的相关查询
linux
lihao lihao2 小时前
linux匿名管道
linux·运维·服务器
うちは止水2 小时前
weston出图调试
linux·wayland·weston
STDD2 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript
好好风格3 小时前
宝塔面板 HTTPS 端口证书不生效排查记录
linux·运维·nginx
用户2367829801684 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux