GNU make 中的文件名处理函数详解
需积分: 35 86 浏览量
更新于2024-08-09
收藏 2.7MB PDF 举报
"这篇文档是关于GNU Makefile的使用指南,详细介绍了文件名处理函数以及Makefile的相关概念和规则。"
在GNU Make中,文件名处理函数是用于操作和转换文件名的重要工具,特别是当你需要处理一系列文件路径时非常有用。在描述中提到的`$(dir NAMES…)`函数就是一个这样的例子,它的功能是从给出的文件名序列`NAMES…`中提取出每个文件名的目录部分。这个函数会返回一个新序列,其中包含了所有文件名中最后一个斜线("/")之前的部分,即文件所在的目录路径。
例如,如果你有以下文件名列表:
```
foo/bar.txt
baz/qux.cpp
```
应用`$(dir foo/bar.txt baz/qux.cpp)`将返回:
```
foo/
baz/
```
除了`$(dir)`函数,GNU Make还提供了其他文件名处理函数,如`$(notdir NAMES…)`, `$(basename NAMES…)`, `$(suffix NAMES…)`, `$(addprefix PREFIX,NAMES…)`, `$(addsuffix SUFFIX,NAMES…)`等。这些函数分别用于获取非目录部分、基础文件名、文件扩展名、在每个文件名前添加前缀以及在每个文件名后添加后缀。
`Makefile`是构建自动化工具,用于规定构建项目的一系列规则。它包含了目标、依赖关系以及如何从依赖构建目标的命令。例如,一个简单的Makefile可能包含一条规则:
```make
my_program: main.o utils.o
gcc -o my_program main.o utils.o
main.o: main.c
gcc -c main.c
utils.o: utils.c
gcc -c utils.c
```
这个Makefile定义了`my_program`为目标,`main.o`和`utils.o`为其依赖。当`my_program`需要更新时,Make会依据规则编译对应的`.c`源文件。
在Makefile中,还可以使用变量来简化规则。比如,可以定义一个`CC`变量来代表编译器,这样在规则中就可以统一替换为`$(CC)`,使代码更易读且易于维护。此外,还有自动变量如`$@`代表目标,`$<`代表第一个依赖,这些在编写规则时十分方便。
条件语句、函数和通配符也是Makefile中的重要组成部分。例如,你可以根据不同的条件执行不同的构建步骤,或者使用`wildcard`函数获取当前目录下匹配特定模式的所有文件。
目录搜索功能允许Make在不同目录中查找依赖文件,可以通过设置`VPATH`变量或使用`vpath`指令实现。这在项目结构复杂,文件分布在多个子目录时非常有用。
GNU Makefile提供了一套强大的机制,帮助开发者管理和构建复杂的项目,通过文件名处理函数和各种规则,可以高效地自动化编译、链接等任务。
2019-08-24 上传
2009-08-13 上传
2019-11-17 上传
2023-04-11 上传
2023-06-02 上传
2023-06-09 上传
2023-06-06 上传
2023-05-31 上传
2023-06-09 上传
CSDN热榜
- 粉丝: 1887
- 资源: 3955
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍