代码之家  ›  专栏  ›  技术社区  ›  Erel Segal-Halevi

将常规依赖项与特定依赖项组合

  •  1
  • Erel Segal-Halevi  · 技术社区  · 6 年前

    %.o: %.c
    

    以及特定的依赖关系,例如:

    Tree.o: Leaf.h
    Rectangle.o: Point.h
    

    最终的结果应该是Tree.o同时依赖于Tree.c和Leaf.h,以及Rectangle.o同时依赖于Rectangle.c和Point.h。

    在这种情况下,我到底应该将编译命令放在哪里-在一般依赖项或特定依赖项之下?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Renaud Pacalet    6 年前

    答案是肯定的,你可以。并且通常将配方添加到涉及源文件的依赖项中;这使您可以访问最有用的make自动变量( $< $@ :目标对象文件):

    %.o: %.c
        $(CC) $(CFLAGS) -c -o $@ $<
    
    foo.o: foo.h
    
        2
  •  1
  •   Florian Weimer    6 年前

    Multiple Rules for One Target 在GNU制造手册中。