Makefile 中符合的使用

时间:2021-02-17 12:52:22

1. $@:

表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于

目标中模式定义的集合

2. $^  :

所有的依赖目标的集合。以空格分隔。如果在依赖目标中有多个重复的,那个这个变量

会去除重复的依赖目标。

3. $<:

依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将

是符合模式的一系列的文件集。注意,其是一个一个取出来的。

4.¥?:

所有比目标新的依赖目标的集合。以空格分隔。

5. $1 :shell脚本后跟的第一个词组    shell.sh  /etc   此处$1  为  /etc

6.¥(@D):

表示"$@"的目录部分(不以斜杠作为结尾) ,如果"$@"值是"dir/foo.o",那么"$(@D)"就

是"dir",而如果"$@"中没有包含斜杠的话,其值就是"."(当前目录)

7.$(@F):

表示"$@"的文件部分,如果"$@"值是"dir/foo.o",那么"$(@F)"就是"foo.o","$(@F)"相

当于函数"$(notdir $@)"

8. echo 颜色    \e[0;36;1m    ***************  \e[0;36;1m   确定******输出颜色字体

  1m:设置高亮度    0m:关闭所有属性   4m:下划线  5m:闪烁

     https://blog.csdn.net/darennet/article/details/8185877

9. [ -d DIR ]  测试程序  如果DIR存在并且是一个目录则为真

 

记忆方法:


$^    其中^表示水平的范围限定,包含所有的依赖文件集合(source1.o  source2.o  source3.o  source4.o )

$?    其中?表示哪些依赖文件有更新是未知的,有更新的依赖文件集合(?)

$<    其中<表示从集合中取值,第一个依赖的文件 (source1.o)

$@   目标文件  (dst)

$(@D)   $@的目录部分

$(@F)   $@的文件部分

 

相关文章