这是一个用于六个不同程序的简单头文件。这个Makefile过去工作得很好,但后来我改变了程序以包含其他实现文件。需要更改此Makefile,以便在实现文件更改时,包含这些实现文件的文件将被重新编译。
all: load list show add delete btree
%: %.cpp
g++ $< -g -o $@
答案 0 :(得分:2)
您可以使用gcc的-MM选项创建依赖项文件,然后将它们包含在Makefile中。
TARGETS = load list show add delete btree
all: $(TARGETS)
%: %.cpp
g++ $< -g -o $@ -MM -MF $@.dd
sed "s/$@\.o:/$@:/" $@.dd > $@.d
-@rm $@.dd
DEPS=$(TARGETS:%=%.d)
-include $(DEPS)
存在sed
行,用于将相关性文件从load.o: load.c
更改为load: load.c
。