make:'makefile'没什么可做的

时间:2013-11-16 15:31:21

标签: java makefile

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

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'做。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

如果你运行没有参数的make,它会尝试重建它在makefile中找到的第一个目标。

makefile中的第一行是:

makefile:

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

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

答案 1 :(得分:0)

我不确定,但我认为你需要添加类似" javac blabla.java"在"默认:类"

答案 2 :(得分:0)

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

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