学习日记:如何写Makefile(二)——规则篇(上)

本文是学习Makefile的笔记,主要探讨显式规则的三个方面:通配符、伪目标和空目标,以及Makefile中的变量使用。通过实例解析,帮助读者掌握Makefile的编写技巧。
摘要由CSDN通过智能技术生成

一、显式规则(Explicit Rules)

通常在写makefile时使用的都是显式规则,这需要指明target和prerequisite文件。一条规则可以包含多个target,这意味着其中每个target的prerequisite都是相同的。当其中的一个target被修改后,整个规则中的其他target文件都会被重新编译或执行。

通配符(Wildcards)

make支持的通配符与Bourne shell基本相同,包括~, *, ?, [...], [^...]。
*.*      表示了所有文件;
?        表示任意单个字符;
[...]     表示一个字符类;
[^...]   表示相反的字符类。
~        表示当前用户的/home路径,~加用户名可以表示该用户的/home路径。
注意: make会在读取makefile的时候就自动补充好通配符替代的内容,而shell则是在执行命令的时候才会进行通配符替代,在某些复杂情况,这两种方式会有极大的区别。

伪目标(Phony Targets)

多数情况下makefile中的target目标文件是像前面提到的那样带有指定的prerequisite文件,但也有一些target仅仅是作为一个标签,代表了一条命令,这种不代表任何文件的目标就被称为伪目标。常见的伪目标例如在makefile开头部分的第一个目标 all, 以及前面例子中见到的 clean:
clean:
    rm -f *.o lexer.c
但是,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值