我尝试学习为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'做。我该如何解决这个问题?
答案 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
目录中。更改目标名称解决了问题。