makefile通配符格式
时间: 2023-08-10 13:10:06 浏览: 103
在 Makefile 中,通配符用于匹配文件名或路径。常见的通配符格式有:
1. `*`:匹配零个或多个字符(不包括路径分隔符)。
例如,`*.c` 表示匹配当前目录下所有以 `.c` 结尾的文件。
2. `?`:匹配一个任意字符(不包括路径分隔符)。
例如,`?.txt` 表示匹配当前目录下所有以一个字母加上 `.txt` 结尾的文件。
3. `[characters]`:匹配括号内的任意一个字符。
例如,`[abc].txt` 表示匹配当前目录下所有以 `a.txt`、`b.txt` 或 `c.txt` 结尾的文件。
4. `[!characters]`:匹配不在括号内的任意一个字符。
例如,`[!abc].txt` 表示匹配当前目录下所有不以 `a.txt`、`b.txt` 或 `c.txt` 结尾的文件。
5. `**`:递归通配符,匹配任意路径。
例如,`src/**/*.c` 表示匹配 `src/` 目录及其子目录下所有以 `.c` 结尾的文件。
这些通配符可以与其他 Makefile 规则和命令一起使用,用于指定目标和依赖关系。
相关问题
makefile通配符
Makefile中常见的通配符有以下几种:
- `%.o`或`%.c`:该通配符表示任意的`.o`文件或者`.c`文件。
- `$@`:表示目标。
- `$<`:表示第一个依赖文件。
- `$^`:表示所有依赖文件。
举个例子,假设我们有一个`test.c`文件需要编译成`test.o`文件,可以使用以下Makefile代码:
```makefile
test.o: test.c
gcc -c $< -o $@
```
其中,`$<`表示`test.c`,`$@`表示`test.o`。
makefile的通配符
在Makefile中,通配符用于表示文件名的模式匹配。Makefile中支持的通配符和shell中的通配符相同,包括`*`、`?`、`[]`等。
下面是通配符的使用方法和含义:
- `*`:匹配任意长度的任意字符。比如`*.c`表示当前目录下所有以`.c`结尾的文件。
- `?`:匹配任意单个字符。比如`?.c`表示当前目录下所有以一个字符加上`.c`结尾的文件。
- `[]`:匹配任意字符集中的一个字符。比如`[abc].c`表示当前目录下所有以`a.c`、`b.c`、`c.c`结尾的文件。
除了这些通配符,Makefile中还有一些特殊的自动变量也可以看做是特殊的通配符,包括:
- `$@`:表示所有的目标文件。
- `$^`:表示目标所依赖的所有文件。
- `$<`:表示依赖文件中的第一个文件。
- `$?`:表示所有更新过的依赖文件。
通过使用通配符和自动变量,可以在Makefile中方便地进行模式匹配和文件操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)