我尝试学习为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
目录。更改目标的名称解决了问题。