代码之家  ›  专栏  ›  技术社区  ›  ABu

GNU Make,来自多个先决条件行的值`$<`

  •  1
  • ABu  · 技术社区  · 6 年前

    在这种情况下:

    sample.o: sample.hpp
    %.o: %.cpp
         $(CXX) -o $@ -c $<
    
    sample.o: utility.hpp
    

    $< )? sample.hpp ? sample.cpp ? ... utility.hpp 样品.hpp 是make找到的第一个先决条件。 cpp样品 是包含配方的规则的第一个必要条件,这是最有意义的。 把它作为第一个先决条件是没有意义的,但我认为它是完整的。

    sample.o: sample.hpp utility.hpp
    # implicit rule %.o: %.cpp
    

    如果…怎么办?

    %.o: %.cpp # Removal of implicit rule/recipe.
    sample.o: sample.hpp
    %.o: %.cpp %.d
         $(CXX) $(DEPFLAGS) -o $@ -c $<
    

    从第一行开始,或者 样品.hpp 自从 %.o: %.cpp 被重写 %.o: %.cpp %.d 是新的第一个先决条件;或 cpp样品 因为这是包含配方的规则的第一个先决条件。

    如果…怎么办?

    sample.o: sample.hpp
    %.o: %.cpp
    sample.o: utility.hpp
    %.o: %.cpp %.d
         $(CXX) $(DEPFLAGS) -o $@ -c $<
    

    样品.hpp 第四行。

    简而言之,gnumake使用什么标准或算法来填充 $< ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Community CDub    4 年前

    信息(我的文件强调):

    $<

    第一个先决条件的名称。 如果目标得到了它的配方 从隐式规则中,这将是由添加的第一个先决条件 .