makefile使用变量
makefile中定义变量的一般形式是:
变量名 赋值符 变量值
变量名要求与C语言相似。在含有变量的makefile中,make执行时把变量名出现的地方用对应的变量值替换。makefile中的变量类是C语言的宏。变量名区分大小写。
有一些变量是系统预定义的,如自动变量"$@","$?","$<","$*"等。
1.引用变量
当定义变量后可以在makefile中使用这个变量。引用方式是:$(变量名)或者${变量名}。
2.定义变量
makefile中有两种类型的变量:递归展开变量和立即展开变量。
通过"="赋值的变量是递归展开变量;
通过":="赋值的变量是立即展开的变量;
例子:
foo = $(bar)
bar = $(ugh)
ugh = Huh
all:
echo $(foo)
执行make是将后打印出Hub。整个过程如下:
make执行echo命令时,首先$(foo)被替换为$(bar);
接下来$(bar)被替换为$(ugh);
最后$(ugh)被替换为Huh。
整个过程是在执行 echo $(foo) 时完成的。
makefile中定义变量的一般形式是:
变量名 赋值符 变量值
变量名要求与C语言相似。在含有变量的makefile中,make执行时把变量名出现的地方用对应的变量值替换。makefile中的变量类是C语言的宏。变量名区分大小写。
有一些变量是系统预定义的,如自动变量"$@","$?","$<","$*"等。
1.引用变量
当定义变量后可以在makefile中使用这个变量。引用方式是:$(变量名)或者${变量名}。
2.定义变量
makefile中有两种类型的变量:递归展开变量和立即展开变量。
通过"="赋值的变量是递归展开变量;
通过":="赋值的变量是立即展开的变量;
例子:
foo = $(bar)
bar = $(ugh)
ugh = Huh
all:
echo $(foo)
执行make是将后打印出Hub。整个过程如下:
make执行echo命令时,首先$(foo)被替换为$(bar);
接下来$(bar)被替换为$(ugh);
最后$(ugh)被替换为Huh。
整个过程是在执行 echo $(foo) 时完成的。