一步一步写MP3项目的Makefile--自动添加目标对头文件的依赖

来源:互联网 发布:人参出口韩国数据 编辑:程序博客网 时间:2024/06/03 19:24
.PHONY:all cleanSRCS = $(wildcard *.c)OBJS = $(SRCS:.c=.o)DEPS = $(SRCS:.c=.d)BIN  = mp3all: $(BIN) $(DEPS)ifneq ("$(wildcard $(DEPS))","")   include $(DEPS)endif$(BIN):$(OBJS)    gcc -o $@ $^%.o:%.c    gcc -o $@ -c $(filter %.c,$^)%.d:%.c    gcc -MM $^ > $@clean:    rm -f  $(BIN) $(OBJS) $(DEPS)

.PHONY:all clean 作用:第一防止有clean文件,不添加的话就无法执行clean命令。
SRCS = $(wildcard *.c) 作用:扫描整个文件夹下的.c文件
OBJS = $(SRCS:.c=.o) 作用:.c文件生成.o文件。和下面关联

%.o:%.c    gcc -o $@ -c $(filter %.c,$^)   #过滤.c文件

DEPS = $(SRCS:.c=.d) 作用:.c文件生成.d文件,@^ 代表所有的依赖对象,和下面相关联

%.d:%.c    gcc -MM $^ > $@   

初次使用时候,DEPS为空,所以需要进行一个判断,判断DEPS是否为空,为空则不执行,飞空则执行。

ifneq ("$(wildcard $(DEPS))","")   include $(DEPS)endif

清除所有的生成文件和依赖文件。

clean:    rm -f  $(BIN) $(OBJS) $(DEPS)
阅读全文
0 0