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

default:这个makefile中的类是什么意思?

  •  -7
  • Chen  · 技术社区  · 10 年前

    注释为“默认的make目标条目”。 有人能在这一行解释更多吗? 为什么我们在这里使用“default”而不是“all”?我能把名字改成我想要的吗? 谢谢

    JFLAGS = -g
    JC = javac
    .SUFFIXES: .java .class
    .java.class:
            $(JC) $(JFLAGS) $*.java
    
    CLASSES = \
            Foo.java \
            Blah.java \
            Library.java \
            Main.java 
    
    default: classes
    
    classes: $(CLASSES:.java=.class)
    
    clean:
            $(RM) *.class
    
    1 回复  |  直到 10 年前
        1
  •  0
  •   Mark Galeck    10 年前

    “default”一词的含义是“隐式”,或“如果没有给出”。在makefiles中,如果你调用

    >make
    

    如果没有明确说明目标,那么makefile中的第一个目标(除了以 . )已更新。因此,将第一个这样的目标称为“默认”是有意义的。是的,如果你想让每个人都感到困惑,你可以把它改成其他东西。

    然而,根据Make手册的约定,第一个目标的名称应该是 all 所以 全部的 比 default 这比什么都好。

    此外,“defaultmaketargetentry”是一个糟糕的注释。恰当的术语是“制定目标”,并对已命名的目标进行注释 违约 使用“default”是浪费字符:)