Makefile利用函数,指定文件夹下面源文件(成百上千)生成目标文件。
时间: 2024-03-10 16:46:03 浏览: 77
makefile 函数
可以使用Makefile中的函数`wildcard`和`patsubst`来指定文件夹下的源文件并生成目标文件。
假设源文件存放在`src/`文件夹下,目标文件存放在`obj/`文件夹下,可以使用以下代码:
```
# 指定源文件所在文件夹
SRC_DIR := src
# 指定目标文件所在文件夹
OBJ_DIR := obj
# 使用wildcard函数获取SRC_DIR文件夹下的所有.c文件
SRCS := $(wildcard $(SRC_DIR)/*.c)
# 使用patsubst函数将SRCS中的.c文件替换成.o文件,存储到OBJS中
OBJS := $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))
# 定义编译命令
CC := gcc
CFLAGS := -Wall
# 定义目标文件生成规则
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
# 定义默认目标all,生成所有目标文件
all: $(OBJS)
# 定义清理命令
clean:
rm -f $(OBJS)
```
在终端中执行`make`命令即可生成所有目标文件。
阅读全文