首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何扩展此Makefile以使用通配符?

要扩展Makefile以使用通配符,可以使用通配符规则来匹配多个文件。通配符规则使用通配符字符(如*)来匹配文件名中的任意字符。

下面是一个示例Makefile,展示了如何使用通配符来扩展:

代码语言:txt
复制
# 定义源文件目录和目标文件目录
SRC_DIR := src
OBJ_DIR := obj

# 获取源文件列表
SRCS := $(wildcard $(SRC_DIR)/*.c)

# 根据源文件列表生成目标文件列表
OBJS := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))

# 定义编译器和编译选项
CC := gcc
CFLAGS := -Wall -Iinclude

# 定义目标文件生成规则
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
    $(CC) $(CFLAGS) -c $< -o $@

# 定义默认目标
all: $(OBJS)

# 清理目标文件
clean:
    rm -rf $(OBJ_DIR)/*.o

在上面的示例中,首先定义了源文件目录和目标文件目录。然后使用wildcard函数获取源文件列表,该函数会将通配符展开为匹配的文件列表。接着使用patsubst函数将源文件列表转换为目标文件列表,将源文件目录替换为目标文件目录,并将文件扩展名从.c替换为.o

然后定义了编译器和编译选项。接下来定义了目标文件生成规则,使用了通配符%来匹配文件名中的任意字符。该规则指定了如何将源文件编译为目标文件。

最后定义了默认目标all,该目标依赖于所有的目标文件。通过运行make命令,可以编译所有的目标文件。还定义了清理目标clean,用于删除生成的目标文件。

这样,通过在源文件目录中添加新的源文件,Makefile会自动识别并编译新的目标文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券