makefile如何编译文件夹下的文件

   2025-02-22 6840
核心提示:在Makefile中,可以使用通配符(wildcard)来获取文件夹下所有文件的列表,然后使用规则来编译这些文件。以下是一个示例的Makefi

在Makefile中,可以使用通配符(wildcard)来获取文件夹下所有文件的列表,然后使用规则来编译这些文件。

以下是一个示例的Makefile,用于编译文件夹下的所有.c文件:

# 获取文件夹下所有的.c文件SRCS := $(wildcard *.c)# 生成对应的目标文件列表OBJS := $(SRCS:.c=.o)# 目标文件TARGET := myprogram# 编译规则$(TARGET): $(OBJS)gcc $^ -o $@%.o: %.cgcc -c $< -o $@.PHONY: cleanclean:rm -f $(OBJS) $(TARGET)

在这个Makefile中,首先使用通配符$(wildcard *.c)获取当前文件夹下所有的.c文件,并将它们保存到变量SRCS中。然后,通过将.c替换为.o,生成对应的目标文件列表OBJS

接下来,定义了两个规则。第一个规则$(TARGET): $(OBJS)表示生成目标文件$(TARGET)的依赖是所有的目标文件列表$(OBJS)。在规则的命令中,使用$^表示所有的依赖文件,$@表示目标文件,通过gcc命令将目标文件链接成可执行程序。

第二个规则%.o: %.c表示根据.c文件生成对应的目标文件。在规则的命令中,使用$<表示第一个依赖文件,通过gcc命令将.c文件编译成目标文件。

最后,定义了一个伪目标.PHONY: clean用于清理编译生成的目标文件和可执行程序。

要编译文件夹下的所有文件,只需在命令行中输入make即可。如果需要清理编译生成的文件,可以输入make clean

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言