makefile 如何遍历文件
时间: 2023-11-06 19:08:54 浏览: 50
Makefile可以通过使用通配符来遍历文件。在Makefile中,可以使用通配符来匹配指定目录下的文件。通配符包括*(匹配任意字符),?(匹配任意一个字符)和[...](匹配指定范围内的字符)。使用通配符可以实现文件的自动搜寻和编译目录的自动生成。下面是一个示例的Makefile代码:
```
SRC_PATH = src
INC_PATH = -I$(SRC_PATH) -I$(SRC_PATH)/inc
# 获取所有的源文件
SRC_FILES = $(wildcard $(SRC_PATH)/*.c)
# 获取所有的头文件
INC_FILES = $(wildcard $(SRC_PATH)/inc/*.h)
# 生成静态库文件
LIB_FILES = lib/myMath.a lib/myRecord.a lib/myString.a
all: $(LIB_FILES)
# 编译每个源文件生成相应的静态库文件
lib/%.a: $(SRC_FILES) $(INC_FILES)
gcc -c $(INC_PATH) $< -o $@
clean:
rm -f $(LIB_FILES)
```
这个Makefile通过使用`wildcard`函数来获取指定目录下的所有源文件和头文件。然后,在`all`目标中,通过遍历每个源文件,使用gcc编译命令将其编译成对应的静态库文件。最后,定义了一个`clean`目标,用于清除生成的静态库文件。
这样,当你运行`make`命令时,Makefile会自动遍历指定目录下的所有源文件,并生成相应的静态库文件。
相关推荐
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)