理解GNU make:静态模式规则与SSE4.2指令集详解
需积分: 4 24 浏览量
更新于2024-08-09
收藏 4.21MB PDF 举报
"GNU make中文手册,讲解了makefile的编写和规则的使用,包括静态模式规则的详细说明。"
在 GNU Make 中,静态模式规则是一种特殊的规则,它允许你为多个不同目标创建规则,而这些目标的依赖文件可以通过目标文件的名字自动构建。这种规则的灵活性在于它不需要所有目标共享相同的依赖,但要求依赖文件之间有相似性而不是完全相同。
静态模式规则的基本语法如下:
```
TARGETS ...: TARGET-PATTERN: PREREQ-PATTERNS ...
```
这里,`TARGETS` 是你想要构建的目标列表,可以有多个。`TARGET-PATTERN` 是一个模式,用于匹配目标文件的名字,`PREREQ-PATTERNS` 是与`TARGET-PATTERN` 相对应的依赖文件模式。
例如,如果你有多个源文件以 `.c` 结尾,你需要将它们编译成相应的 `.o` 文件,你可以写一个静态模式规则如下:
```make
%.o: %.c
gcc -c $< -o $@
```
在这个例子中,`%.o` 是目标模式,匹配任何以 `.o` 结尾的文件,`%.c` 是依赖模式,表示对应的目标文件的源文件。`$<` 表示第一个依赖文件,`$@` 表示目标文件。这条规则告诉 `make` 如何从 `.c` 文件生成 `.o` 文件。
静态模式规则的一个关键点是,它们允许你为一组相关的文件创建一条规则,而不需要为每个文件单独定义规则。这对于大型项目尤其有用,可以减少 makefile 的复杂性和冗余。
此外,手册中还提到了其他重要的 makefile 概念,如:
- **Makefile**:包含指令和规则的文件,指导 `make` 如何构建项目。
- **变量**:可以存储值,如文件路径或命令,简化 makefile。
- **规则**:定义了如何从依赖文件生成目标文件的指令。
- **通配符** (`*`) 和 **函数wildcard**:用于匹配一组文件。
- **目录搜索**:通过 `VPATH` 或 `vpath` 关键字实现,允许 `make` 在多个目录中查找依赖文件。
- **伪目标**:如 `.PHONY`,确保 `make` 总是执行相关命令,即使同名的物理文件存在。
- **多目标** 和 **多规则目标**:允许多个目标共享相同的命令和/或依赖。
通过深入理解和熟练运用这些概念,你可以创建出高效、灵活的 makefile,管理复杂的软件构建过程。
2020-01-10 上传
216 浏览量
2019-12-30 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
张诚01
- 粉丝: 32
- 资源: 3906
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器