gpt4 book ai didi

Java 生成文件 "No rule to make target"

转载 作者:行者123 更新时间:2023-11-30 10:53:20 27 4
gpt4 key购买 nike

我正在尝试为我的 java 程序编写一个 makefile。我试过在线查找,这就是我想出的。

JFLAGS = -g

JC = javac

JVM = java

FILE=

.SUFFIXES: .java .class

.java.class:

$(JC) $(JFLAGS) $*.java

CLASSES = banker.java

MAIN = Main

default: classes

classes: $(CLASSES:.java=.class)

run: classes
$(JVM) $(MAIN)

我收到一条错误消息

No rule to make target 'banker.class', needed by 'classes'. Stop.

我只有一个类:banker.java

最佳答案

看起来 banker.java 与 Makefile 不在同一个目录中。

如果没有,您需要改为说:“CLASSES = relative/path/to/banker.java”

例如,如果您有这样的目录结构:

MyProject
-jsrc
-banker.java
-jbin
-Makefile

而你的banker.java在MyProject/jsrc中,那么你需要改

CLASSES = banker.java

成为

CLASSES = jsrc/banker.java

而且,除非你希望 .class 文件也位于 jsrc 中,否则你需要更改

$(JC) $(JFLAGS) $*.java

$(JC) -d $(JCLASSDIR)/. $(JFLAGS) $*.java

并添加

JCLASSDIR=jbin

在顶部

JFLAGS = -g

JC = javac

JCLASSDIR=jbin

JVM = java

FILE=

.SUFFIXES: .java .class

.java.class:

$(JC) -d $(JCLASSDIR)/. $(JFLAGS) $*.java

CLASSES = jsrc/banker.java

MAIN = Main

default: classes

classes: $(CLASSES:.java=.class)

run: classes
$(JVM) $(MAIN)

关于Java 生成文件 "No rule to make target",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com