Linux Makefile 生成 *.d 依赖文件及 gcc -M -MF -MP 等相关选项说明
https://blog.youkuaiyun.com/QQ1452008/article/details/50855810
实例


objs = a.o b.o c.o
depfiles := $(patsubst %, .%.d, $(objs))
depfiles := $(wildcard $(depfiles))
CFLAGS = -Werror -Iinclude
test: $(objs)
gcc -o test $^
@echo depfiles = $(depfiles)
ifneq ($(depfiles),) #如果变量不等于空,则包含
include $(depfiles)
endif
%.o: %.c
gcc $(CFLAGS) -c -o $@ $< -MD -MF .$@.d
clean:
rm *.o test
distclean:
rm $(depfiles)
.PHONY: clean
本文详细介绍了在Linux环境下使用Makefile结合GCC编译器生成依赖文件的过程。通过具体的实例,展示了如何设置Makefile规则来自动创建和更新*.d依赖文件,以及gcc的-M、-MF、-MP等选项的具体作用。这不仅提高了编译效率,还确保了项目中源文件之间的正确依赖关系。
272

被折叠的 条评论
为什么被折叠?



