《Makefile 进阶之路二》 这里有你对Makefile所有的畅想

2.1 指定变量

在上篇介绍的例子中,终极目标“edit”所在的规则如下:

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

可以发现,“edit”所依赖的文件“.o”,在依赖列表和命令中各自被写了一次,显然,如果我们需要为“edit”增加一个新的依赖(这在开发中基本上都会出现),那么我们就需要将新的“.o”文件分别插入两个位置。本着写的越多,错的可能性越大的理念,我们提出了一种解决多次书写依赖的方法:变量。我们可以定义一个变量,可以是“objs”、“objects”等各种字符串,我们将依赖列表赋值给这个变量,哪里需要使用依赖列表的时候,仅仅需要使用变量就可以了。

于是,上例的规则就可以修改为:

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

edit:$(objs)

cc -o edit $(objs)

在所有需要依赖列表的地方使用$(objs)代替。以上代码完全等价与原始的代码。而且,当我们需要增加或者删除依赖的时候,仅仅需要修改objs变量就可以了。以此为启发,我们在clean处的代码也可以写为:

clean:

rm edit $(objs)

2.2 自动推导命令规则

我们观察修改过后的Makefile文件:


 `1 objs = main.o kbd.o co
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值