3.6.5 Makefile中的变量

2013-10-12 06:50:06 · 作者: · 浏览: 88

3.6.5  Makefile中的变量

在上面的例子中,我们需要在"edit"的规则中两次列出所有的.o目标文件(如下所示):

edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o
cc -o edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o

这种重复信息很容易出错。如果我们在程序中添加了一个新的.o目标文件,那么就有可能在一个列表中添加了这个.o目标文件名,但忘记在另一个地方也同时加入。通过使用一个变量,我们就有可能减少这种出错的危险并且也使得Makefile看上去更简明一些。使用变量可以让我们定义一次文本字符串,随后可以在多个地方进行替换。

对于Makefile,典型的做法是定义一个名称为objects、OBJECTS、objs、OBJS、obj或者OBJ的变量来表示所有.o目标文件的列表。我们通常会在Makefile中使用如下一行来定义一个变量objects:

objects = main.o kbd.o command.o display.o insert.o search.o files.o utils.o

此后,在每一处需要列出.o目标文件表的地方都可以通过写上"$(objects)"来替换变量的值。