变量在声明时需要给予初值,而在使用时,需要给在变量名前加上 $
符号,但最好用小括号 ()
或是大括号 {}
把变量给包括起来。如果你要使用真实的 $
字符,那么你需要用 $$
来表示。
变量可以使用在许多地方,如规则中的目标、依赖、命令以及新的变量中。先看一个例子:
objects = program.o foo.o utils.o program : $(objects) cc -o program $(objects) $(objects) : defs.h点击复制复制失败已复制
变量会在使用它的地方精确地展开,就像C/C++
中的宏一样,例如:
foo = c prog.o : prog.$(foo) $(foo)$(foo) -$(foo) prog.$(foo)点击复制复制失败已复制
展开后得到:
prog.o : prog.c cc -c prog.c点击复制复制失败已复制
当然,千万不要在你的 Makefile
中这样干,这里只是举个例子来表明Makefile
中的变量在使用处展开的真实样子。可见其就是一个替代的原理。
另外,给变量加上括号完全是为了更加安全地使用这个变量,在上面的例子中,如果你不想给变量加上括号,那也可以,但我还是强烈建议你给变量加上括号。