GNU make 中的命令执行与 SSE4.2 指令集
需积分: 4 37 浏览量
更新于2024-08-09
收藏 4.21MB PDF 举报
"GNU make makefile 中文手册"
在 GNU make 中,命令的执行遵循特定的规则。当目标文件需要更新时,对应的规则定义的命令会被执行。这些命令以多行形式书写时,每行都会在独立的子 shell 中运行,这意味着各行命令之间互不干扰。比如在 Makefile 中,`cd` 命令用于改变当前目录,但这种改变仅限于该命令所在的 shell 子进程,不会影响后续的命令。如果想让后续命令在新目录下执行,必须确保 `cd` 和后续命令在同一行,并用分号分隔,或者通过反斜杠(\)将多行命令连接成一个完整的 shell 命令行。
在 Makefile 中,所有规则命令的执行会使用环境变量 "SHELL" 指定的程序,默认是 "/bin/sh"。值得注意的是,虽然大多数变量可以从同名的系统环境变量中获取值,但 "SHELL" 是个例外,它的值并不会直接继承自系统环境变量。
在 GNU make 中,Makefile 是用来描述构建过程的文本文件,包含了一系列规则,定义了目标文件及其依赖关系,以及如何生成目标的命令。Makefile 规则通常由目标、依赖和命令三部分组成。目标是需要构建的文件,依赖是目标生成前需要先更新的文件,命令则是更新目标所需的步骤。
Makefile 可以通过变量定义来简化和重用代码,还可以使用自动变量,如 `$@` 表示当前目标,`$<` 表示第一个依赖。此外,Makefile 还支持条件语句和函数,比如 `wildcard` 函数可以用来获取当前目录下的所有匹配文件名。
在处理依赖关系时,可以使用通配符(*)匹配多个文件,但要注意其可能带来的问题,如误匹配。为了更精确地控制,可以使用 `vpath` 关键字设置特定路径的搜索规则,或者利用 `VPATH` 变量进行全局目录搜索。
Makefile 中有几种特殊的目标,如伪目标(.PHONY),用于标识那些实际上并不对应物理文件的目标;强制目标(没有命令或依赖的规则),用来确保总是执行某些操作;空目标文件,用于收集多个命令的结果;以及静态模式规则,允许更灵活地定义规则,匹配一组相似的目标。
Makefile 是构建自动化的重要工具,通过合理编写和利用其特性,可以高效管理复杂的构建过程。理解和掌握 GNU make 的规则和语法对于任何涉及软件编译和构建的开发者来说都是必不可少的技能。
2016-09-08 上传
2014-12-25 上传
2023-03-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Matthew_牛
- 粉丝: 40
- 资源: 3820
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集