如何修复这个Makefile

时间:2010-05-14 23:39:02

标签: 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)

1 个答案:

答案 0 :(得分:1)

您正在使用-MM选项运行g ++,以创建依赖项文件。但是这个选项导致g ++编写一个依赖文件而不是的二进制文件。

试试这个:

TARGETS = load list show add delete btree
all: $(TARGETS)
%: %.cpp
    g++ $< -g -o $@
    g++ $< -g -MM -MF $@.dd
    sed "s/$@\.o:/$@:/" $@.dd > $@.d
    -@rm $@.dd

DEPS=$(TARGETS:%=%.d)
-include $(DEPS)