理解GNU make的后缀规则:从老式到现代
需积分: 5 140 浏览量
更新于2024-08-09
收藏 391KB PDF 举报
"老式风格的“后缀规则”在VSCode配置C/C++编译环境的教程中扮演了重要角色。后缀规则是早期Makefile定义隐含规则的方法,尽管现在已被模式规则所取代,但在与旧版Makefile兼容时仍然重要。后缀规则分为双后缀和单后缀两种形式。双后缀规则如“.c.o”表示目标文件(.o)由源文件(.c)生成,而单后缀规则如“.c”则表明源文件的后缀。后缀必须是make识别的,比如“.c”和“.o”。
编写Makefile时,后缀规则不能包含依赖文件,否则就不再是后缀规则。例如,`.c.o: foo.h` 表示`.c.o`依赖于`foo.h`,而非我们期望的模式规则`%.o: %.c foo.h`。如果后缀规则没有命令,它将不执行任何操作,也不会覆盖内置的隐含规则。
通过`.SUFFIXES`伪目标,可以添加、删除或修改后缀列表。默认的后缀列表可以通过`-r`或`-no-builtin-rules`选项清空,或者通过设置`SUFFIXES`变量来定制。然而,不应直接修改`SUFFIXE`变量的值。
Makefile的书写涉及许多方面,包括规则的定义、变量的使用、命令的书写以及条件判断和函数的应用。规则的语法允许使用通配符和模式,伪目标如`clean`用于清除目标文件。变量可以存储值并在Makefile中复用,条件判断则提供了根据不同情况执行不同命令的功能。此外,Makefile还支持各种函数,如字符串处理和文件名操作,这些增强了Makefile的灵活性和实用性。
本教程的作者是陈皓,发布于2014年,旨在帮助读者理解并编写有效的Makefile,以提高C/C++项目的构建效率。"
2009-05-29 上传
2012-06-03 上传
2011-05-04 上传
2021-11-18 上传
2020-09-27 上传
2016-12-20 上传
2012-12-26 上传
2008-04-17 上传
2018-06-02 上传
Fesgrome
- 粉丝: 37
- 资源: 3835
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践