GNU make命令详解:忽略命令执行失败
需积分: 4 174 浏览量
更新于2024-08-09
收藏 4.21MB PDF 举报
"GNU make中文手册,讲解了命令执行的错误处理以及如何使用-sse4.2命令集"
在GNU Make中,命令执行是构建过程的核心部分。当规则中的命令被执行时,make会检查命令的返回状态。如果命令执行成功,即返回状态为0,那么在另一个子shell中会继续执行下一条命令。然而,如果一个命令执行失败,返回非零状态,make将停止当前规则的执行,并可能终止所有规则的执行。
在某些情况下,我们希望即使某个命令失败,规则也能继续执行。比如使用`mkdir`创建目录,如果目录已存在,`mkdir`会返回错误,但并不影响我们整体的目标。为了解决这个问题,我们可以使用命令前的减号“-”来指示make忽略这个命令的执行失败。这个“-”会被make处理,而不是传递给shell,因此shell看到的只是原始的命令,不会带有“-”字符。
以"clean"目标为例,我们通常会有这样的规则:
```makefile
clean:
-rm *.o
```
这里的“-rm”意味着即使删除`.o`文件时遇到问题,make也不会中断整个构建过程。
GNU Makefile的编写涉及许多方面,包括目标、依赖、规则、变量、自动推导规则、条件语句等。Makefile的规则定义了目标文件及其依赖,make通过比较目标文件和依赖文件的修改时间来决定是否需要重新编译。通配符如`*`可以用于匹配多个文件,但也会带来一些问题,如误匹配。`wildcard`函数可以用来获取匹配通配符的文件列表。
目录搜索功能允许make在多个目录中查找依赖文件,可以通过`VPATH`变量或`vpath`关键字进行设置。伪目标如`.PHONY`用于标记那些实际上并非物理存在的目标,以避免与同名的文件冲突。空目标文件则用于记录其他目标的完成状态,而多目标和多规则目标则允许在一个规则中处理多个文件。
静态模式规则是一种高级特性,允许更加灵活地定义规则,可以根据模式匹配多个目标,并为每个目标指定不同的命令。这种规则的语法允许更简洁、高效的Makefile编写。
理解如何处理命令执行错误以及如何有效地编写和利用Makefile,是提高构建效率和确保软件构建过程稳定的关键。通过深入学习GNU Make中文手册,开发者能够更好地掌握自动化构建的精髓,优化项目构建流程。
2016-09-08 上传
2022-04-11 上传
2021-08-19 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
sun海涛
- 粉丝: 36
- 资源: 3848
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载