“make:***没有目标。停下来。”尝试自动生成依赖项时

时间:2016-02-25 00:55:42

标签: c++ makefile

您好我正在尝试获取可以自动生成simple_test依赖项的makefile。在我的目录中,我有simple_test,simple_test.cpp,p2.h和simple_test.out.correct。

这是我的Makefile包含的内容:

DEPDIR = .d
$(shell mkdir -p $(DEPDIR) >/dev/null)
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td

COMPILE.c = $(CC) $(DEPFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cc = $(CXX) $(DEPFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
POSTCOMPILE = mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d

%.o : %.c
%.o : %.c $(DEPDIR)/%.d
    $(COMPILE.c) $(OUTPUT_OPTION) $<
    $(POSTCOMPILE)

%.o : %.cc
%.o : %.cc $(DEPDIR)/%.d
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
    $(POSTCOMPILE)

%.o : %.cxx
%.o : %.cxx $(DEPDIR)/%.d
    $(COMPILE.cc) $(OUTPUT_OPTION) $<
    $(POSTCOMPILE)

$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d

-include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS)))

1 个答案:

答案 0 :(得分:0)

您的所有规则都是模式规则。模式规则不能是默认规则。如果你使用&#34; make&#34;来调用这个makefile,它会抱怨没有目标 - 因为没有目标。