300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux下的Makefile规则(隐式规则和模式规则)

Linux下的Makefile规则(隐式规则和模式规则)

时间:2021-03-06 02:05:32

相关推荐

Linux下的Makefile规则(隐式规则和模式规则)

目录

1.Makefile规则

2.隐式规则

3.模式规则

Linux下编写C使用的GDB调试器

Ubuntu中关于C介绍以及编写C程序

Ubuntu换源教程

Linux中的Make工程管理

Linux中关于使用make管理工具的实例

提示:看篇博文之前首先对上面给出的链接中的内容有一定的了解。

1.Makefile规则

Makefile文件中的显式规则关系:$(CC),$(CFLAGS) -c $< -o $@;但是Makefile为了简化编写,make还定义了隐式规则和模式规则。

2.隐式规则

GNU Make包含有一些内置的或者隐含的规则,这写规则定义了如何从不同的依赖文件建立特定类型的目标。

隐式规则能够告诉make怎么样使用传统的技术完成任务,这样用户在使用它们的话就不必详细指定编译器的具体细节,而只需要把目标文件列出即可。

make会自动搜索隐式规则来确定如何生成目标文件。

例子来源:Linux中的Make工程管理

现在对上面定义的显式规则进行改进为隐式规则。

对比:对比之前的显式规则的写法,简洁很多,可是理解起来也相对的较难。

从上面的例子可以看到,make隐式规则指出,所有“.o”文件都可以自动由“.c”文件使用命令

$(CC) $(CPPFLAGS) $(CFLAGS) -c file.c -o file.o生成。这样的话main.o,dec.o,mul.o,div.o,add.o就会分别调用这个规则生成(这些规则在大型的项目中最能体现出优势)。

3.模式规则

模式规则用来定义相同处理规则的多个文件,不同于隐式规则,隐式规则仅仅能够用make默认的变量来进行操作,而模式规则还能引入用户自定义变量,为多个文件建立相同的规则,从而简化Makefile的编写。

比如:将任意一个.c文件转换为.o文件:

%.c:%.o

$(CC) $(CCFLAGS) $(CPPFLAGS) -c -o $@ $<

提示:模式规则的格式类似于普通规则,这个规则中的相关文件前必须用“%”标明。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。