理解Makefile:老式后缀规则与铂热电阻测温电路设计

需积分: 39 20 下载量 108 浏览量 更新于2024-08-06 收藏 581KB PDF 举报
"这篇教程主要讲解了如何使用老式风格的后缀规则来编写Makefile,以实现基于pt100铂热电阻的测温电路设计的编译与构建流程。文章详细介绍了后缀规则的两种形式——双后缀规则和单后缀规则,并通过实例解释了如何定义和使用这些规则。" 在Makefile编程中,后缀规则是一种用于定义文件转换关系的机制,尤其适用于传统的、不支持模式规则的老版本。虽然模式规则现在更为常见且强大,但为了兼容性,GNU make仍然支持后缀规则。后缀规则分为两种类型:双后缀规则和单后缀规则。 双后缀规则定义了目标文件和源文件之间的转换关系,例如".c.o"表示".c"文件经过编译成为".o"的目标文件。这种规则的定义形式为`%o : %c`。而单后缀规则仅定义源文件的后缀,如".c",对应的规则是`% : %.c`。后缀必须是Makefile能够识别的,比如".c"和".o"。如果Makefile识别两个连续的后缀,那么它将被当作双后缀规则处理。 在Makefile中,后缀规则通常用于编译源代码,例如: ```make .c.o: $(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $< ``` 这条规则表明所有".c"文件都将被编译为".o"文件。需要注意的是,后缀规则不允许有额外的依赖文件,如`.c.o: foo.h`这样的写法实际上是错误的,它应当被写作`%.o: %.c foo.h`。 为了让Makefile知道特定的后缀,可以使用伪目标`.SUFFIXES`来添加或删除后缀。例如: ```make .SUFFIXES: .hack .win ``` 这会将".hack"和".win"添加到后缀列表中。 文章的作者陈皓还讨论了其他Makefile的相关概念,包括显式规则、隐晦规则、变量的定义和使用、自动推导依赖、静态模式规则以及如何书写命令等。同时,还涉及到了变量的高级用法、条件判断和函数的应用,这些对于编写高效且灵活的Makefile至关重要。 总结来说,这篇文章深入浅出地讲解了Makefile中老式风格的后缀规则,对于理解Makefile的工作原理和编写高效构建脚本提供了宝贵的指导。通过掌握这些知识,开发者可以更好地管理和自动化他们的项目构建过程。