理解GNU make:指定终极目标与Makefile解析
需积分: 34 201 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"指定终极目标-stc8h 系列单片机技术参考手册"
在 GNU Make 中,"指定终极目标"是指确定 make 工具在执行时应当构建的目标文件。终极目标是 makefile 中最终要重建的规则的目标,通常是一个程序或者可执行文件。这个目标的重建可能引发其依赖项或依赖项的依赖项的重建过程。
9.2章节中解释,make 默认的终极目标是 makefile 中的第一个规则中的第一个目标,如果第一个规则有多个目标,则第一个目标被视为默认终极目标。如果想改变默认目标,可以在命令行中通过 `make` 跟随目标名称来指定,如 `make clean`,这样就会以 "clean" 为目标进行构建。同时指定多个终极目标也是可行的,只需在命令行中列出多个目标。
Makefile 中的规则可以指定任意目标,只要不是以"-"开头或包含"="的赋值语句。即使 Makefile 中不存在某个目标的规则,但如果存在对应的隐含规则,make 仍能尝试构建该目标。例如,通过 `make foo` 命令,即使 Makefile 没有 `foo` 的规则,但只要有合适的隐含规则(比如能处理 .c 文件的规则),则会尝试编译 `foo.c` 并生成 `foo`。
在执行过程中,make 设置了一个特殊变量 `MAKECMDGOALS`,它记录了命令行参数指定的终极目标列表。若未通过参数指定终极目标,这个变量将为空。需要注意的是,不应在 Makefile 中重新定义这个变量,它主要用于特殊的判断逻辑。
此外,Makefile 可以包含条件语句、变量、规则等,这些元素共同构成了构建项目的核心指令。例如,`ifneq` 语句用于条件判断,`$(sources:.c=.d)` 是一种变量转换表达式,用于将 `.c` 扩展为 `.d`。
在实际编程中,Makefile 的编写至关重要,因为它定义了构建过程的逻辑,包括文件依赖关系、编译和链接步骤等。理解并熟练运用这些概念和技巧,可以帮助开发者高效地管理项目构建,减少手动操作,提高开发效率。
105 浏览量
110 浏览量
2023-03-25 上传
点击了解资源详情
2023-02-09 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
黎小葱
- 粉丝: 24
- 资源: 3961
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章