企业级Makefile以及Makefile函数运用(学习笔记)

1.总控makefile:进入各功能子目录执行make命令,并将所有.o文件生成可执行文件
2.功能目录makefile:将功能目录下的所有.c文件编译成.o文件
3.脚本目录makefile:定义其他makefile文件所用到的变量

阅读顺序:3、1、2

1. ( w i l d c a r d 模 式 参 数 ) e g : r e s u l t : = (wildcard 模式参数) eg:result:= (wildcard模式参数)eg:result:=(wildcard *.c)
列出当前目录下所有.c 文件
2. ( p a t s u b s t 模 式 参 数 , 参 数 1 , 参 数 2 ) e g : r e s u l t : (patsubst 模式参数,参数1,参数2) eg:result: (patsubst模式参数,参数1,参数2)eg:result:(patsubst,%.c,%.o,x.c,y.c)
Result:=x.o,y.o
3.:= 防止出现死循环
4.+= 给前一个变量追加值
5. ( a d d s u f f i x 参 数 1 , 参 数 2 ) , 参 数 1 的 每 个 单 词 都 加 上 参 数 2 做 参 数 2 后 缀 r e s u l t : = (addsuffix 参数1,参数2),参数1的每个单词都加上参数2做参数2后缀 result:= (addsuffix参数1,参数2),参数1的每个单词都加上参数2做参数2后缀result:=(addsuffix .c,x y)
Result=x.c,y.c
6.foreach
( f o r e a c h 变 量 参 数 , 参 数 1 , 表 达 式 ) 功 能 : 循 环 取 出 参 数 1 中 的 单 词 赋 值 给 变 量 参 数 , 然 后 运 行 表 达 式 。 返 回 值 : 表 达 式 运 行 结 果 a : = x y z r e s u l t : = (foreach变量参数,参数1,表达式) 功能:循环取出参数1中的单词赋值给变量参数,然后运行表达式。返回值:表达式运行结果 a:=x y z result:= (foreach变量参数,参数1,表达式)功能:循环取出参数1中的单词赋值给变量参数,然后运行表达式。返回值:表达式运行结果a:=xyzresult:=(foreach,b, ( a ) , (a), (a),(b).c)

Result=x.c y.c z.c
7.
( c a l l 变 量 参 数 , 参 数 … … … ) 功 能 : 循 环 把 参 数 依 次 赋 值 给 变 量 参 数 中 的 (call 变量参数,参数………) 功能 :循环把参数依次赋值给变量参数中的 (call变量参数,参数………)功能:循环把参数依次赋值给变量参数中的(1)、 ( 2 ) … … … … 返 回 值 : 赋 值 后 的 变 量 值 a : = (2)…………返回值:赋值后的变量值 a:= (2)…………返回值:赋值后的变量值a:=(2), ( 1 ) R e s u l t : = (1) Result:= (1)Result:=(call $(a),x y)
Result=y x

上一篇:可能是最好的 this 解析了...


下一篇:#define do{...}while(0)形式的意义(转载)