一个简单的例子:
edit:main.o kbd.o command.o display.o \
insert.o search.o files.o
cc -o edit main.o kbd.o command.o display.o \
insert.o search.o files.o
我们可以看到*.o文件的字符串被重复了2次,如果我们的工程需要加入一个新的.o文件,那么我们就需要在两个地方加,那么问题就来了,如果是简单的程序,在两个地方加也不累,但是如果是一个大的项目,makefile会变得很复杂,一方面代码要敲很多次,而且有可能会忘掉一个需要加入的地方,从而导致编译失败,所以为了makefile的易维护,在makefile中我们可以使用变量,其实就是一个字符串,相当于C语言中的宏,其作用也完全与宏相同,它能起到 完全替代 的作用,所以就不仅仅局限于某一个变量,而是一大堆字符串了。
变量的定义就是使用 “objects = xxxxxxxxxxxxx”,引用则使用$(objects)
举例:
objects = main.o kbd.o command.o display.o \insert.o search.o files.o utils.o
edit: $(objects)
cc -o edit $(objects)