记住这些自动变量和函数是一个需要不断练习和总结的过程。可以在编写 Makefile 时多加练习,同时可以准备一个备忘录或者手册保存这些变量和函数的使用规则。以下是常用的自动变量和函数:
- `$@`:表示目标文件名。
- `$<`:表示第一个依赖文件名。
- `$^`:表示所有依赖文件名,以空格分隔。
- `$?`:表示比目标文件新的依赖文件名,以空格分隔。
- `$(notdir <paths>)`:去除路径信息,仅保留文件名部分。
- `$(dir <paths>)`:去除文件名信息,仅保留路径部分。
- `$(patsubst <pattern>,<replacement>,<text>)`:用 <replacement> 替换 <text> 中匹配到的 <pattern> 子字符串的部分。
- `$(basename <names>)`:去除文件名的后缀部分,仅保留文件名。
- `$(addsuffix <suffix>,<names>)`:给 <names> 中的每一个文件名添加后缀 <suffix>。
- `$(addprefix <prefix>,<names>)`:给 <names> 中的每一个文件名添加前缀 <prefix>。
边写边查,多加练习,慢慢就可以熟练掌握了。