make:无需为"makefile"执行任何操作



我尝试学习为java项目创建makefile。我写了一个基础类作为Hello.java。然后我写了一个制作文件,如下所示:

makefile:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
%.class: %.java
    $(JC) $(JFLAGS) $^
CLASSES = 
     Hello.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
    $(RM)*.class

当我尝试在cygwin上运行这个文件,并键入make -f makefile时,我得到了这样的错误:make:'makefile'没有什么可做的。如何解决这个问题?

如果您运行不带参数的 make,它会尝试重建它在 make 文件中找到的第一个目标。

生成文件中的第一行是:

makefile:

它定义了一个目标makefile...因此,如果您运行没有参数的make,它将尝试构建makefile目标。 没有更新makefile目标的规则,并且该文件存在,因此请声明它是最新的,无需执行任何操作来更新它。

我不知道为什么你在那里有那行,但无论如何你需要确保你的makefile中的第一个目标是你在运行make时想要构建的目标;在这里,看起来你希望default成为第一个。

我不确定,但我认为您需要在"默认:类"下方添加类似"javac blabla.java"的内容

我在相同的错误消息make: Nothing to be done for 'makefile'遇到问题。

就我而言,问题是目录中存在具有目标名称makefile目录。更改目标的名称解决了问题。

最新更新