GNU make中文手册:文件名通配符与Makefile规则解析
需积分: 34 48 浏览量
更新于2024-08-10
收藏 1.45MB PDF 举报
"文件名使用通配符-stc8h 系列单片机技术参考手册"
在编程领域,尤其是在构建自动化工具如`GNU Make`中,文件名使用通配符是一项重要的功能。通配符允许程序员简洁地表示一组具有相似模式的文件,从而简化Makefile的编写。`stc8h`系列单片机技术参考手册虽然未直接涉及这一概念,但通配符在编写针对这类单片机的编译脚本时同样适用。
通配符主要包括三种:
1. `*`:代表任意数量的任意字符序列。例如,“*.c”表示所有以".c"结尾的文件。
2. `?`:代表单个任意字符。例如,“?.c”表示一个字符后跟".c"的文件。
3. `[...]`:代表括号内列举的任意一个字符。例如,“[abc].c”表示"a.c", "b.c" 或 "c.c"。
在Makefile中,通配符有特定的使用限制,主要用在两个场景:
1. 规则的目标和依赖:在定义规则时,可以使用通配符来代表一组文件。例如,`clean:`后面接`*.o`,表示清理所有以".o"结尾的对象文件。
2. 通配符展开:当`make`读取Makefile时,会自动识别并展开这些通配符,找出它们匹配的实际文件。
然而,通配符不是万能的,存在一些限制和缺陷:
- **通配符不被递归展开**:如果一个依赖项是一个通配符,且这个通配符本身又依赖于其他文件,`make`不会递归展开这个通配符。
- **实时性问题**:`make`仅在读取Makefile时展开通配符,如果在此之后有新文件匹配上通配符,`make`不会自动检测到。
为了弥补通配符的不足,`GNU Make`提供了`wildcard`函数,它可以在运行时动态获取匹配通配符的所有文件名。例如,`SRC := $(wildcard *.c)`会将当前目录下所有.c文件的列表赋值给变量`SRC`。
此外,`GNU Make`还支持目录搜索,通过`VPATH`变量或`vpath`关键字指定额外的搜索路径,使得`make`能在多个目录中查找依赖文件,这对于大型项目或分散的源代码组织非常有用。
正确使用通配符和目录搜索机制是编写高效Makefile的关键,特别是在处理大量同类型的文件时,能够极大地减少手动指定每个文件的繁琐工作。在`stc8h`系列单片机的开发中,理解并掌握这些技巧能够提升编译和构建流程的自动化程度。
2025-01-08 上传
2025-01-08 上传
650 浏览量
博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形 博世汽车电驱仿真模型,同步电机和异步电机模型,相电流完美波形,自动计算弱磁模型调用各种脚本进行foc控制,正反转切电流无波动,由于模型特殊
2025-01-08 上传
2025-01-08 上传
2025-01-08 上传
Sylviazn
- 粉丝: 29
- 资源: 3870
最新资源
- zakaz
- matlab实现DCT变换和量化
- snueue:Reddit 媒体播放器
- Digital-electronics-1-2021
- pids-mobile
- madplay.rar
- 使用 MATLAB 进行 3D 有限元分析:这些是“使用 MATLAB 进行 3D 有限元分析”网络研讨会中使用的 MATLAB 示例-matlab开发
- LOGA 5X 多语言多平台建站系统 v5.3.0 utf-8
- band-together
- 广州大学操作系统课程设计:优先级调度.zip
- zave7.github.io:主
- Python
- Yzncms内容管理系统 v1.0.0
- -deprecated-cmsimple:[已弃用] 使用机车 cms 或类似的 http
- 串口数据保存至TXT文件.rar
- threejs-camera-dolly:用于Threejs的相机多莉助手