Makefile 之 自动化变量

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

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

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

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

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

%.o : %.c

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

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

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

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

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

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

'$@ 表示目标文件

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

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

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

相关推荐
狂奔的sherry15 分钟前
JRuby 多线程反引号偶发 127:GC 提前释放了 posix_spawn 的 argv
java·linux·ruby·gc·jruby
广州灵眸科技有限公司30 分钟前
瑞芯微(EASY EAI)RV1126B DeepSeek R1部署教程
linux·数据库·yolo
沙老师32 分钟前
linux比windows死板的地方
linux·运维·windows
H.莓飛39 分钟前
【Linux】进程的创建与终止
linux·运维·服务器·c语言·visual studio
blueSatchel1 小时前
关于dev下节点的创建
linux·嵌入式
老秦包你会1 小时前
Linux第十课---------进程间通信
linux
宋明河1 小时前
windows与ubuntu双系统主机下ubuntu访问windows磁盘是只读
linux·windows·ubuntu
chenxy021 小时前
国产加速卡-应知应会
linux·运维·服务器
HackTwoHub1 小时前
免 Root 安卓渗透工具 Stryker|把 Kali 装进手机!随身无线渗透工作站,内置 Nmap/Nuclei/Metasploit 全套武器库
android·linux·运维·人工智能·web安全·macos·智能手机
代码村新手2 小时前
Linux-环境变量
linux