我有一组 [name].c 形式的文件,其中一些 #include 是关联的 [name].h 文件。如果 [name].c 或 [name].h 被修改,我想要一个重新构建 [name].o 的 makefile 目标。我试过:
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(SRCDIR)/%.h
#Implementation of target omitted
但是,对于没有关联 .h 文件的 .c 文件,请按上述规则进行投诉。我试过:
$(OBJDIR)/%.o : $(SRCDIR)/%.c $(wildcard $(SRCDIR)/%.h)
#Implementation of target omitted
这会构建,但修改 .h 文件不会触发重建。有什么原因我不能以这种方式使用 % 吗?
注意:我试图避免使用 makedeps.pl 或 makefile 生成的解决方案(因为我实际上并没有使用 .c 或 .h 文件)。