Java Makefile " Nessuna regola per rendere target"
Sto cercando di scrivere un makefile per il mio programma java. Ho provato a cercare online e questo è quello che ho trovato.
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)
Sto ricevendo un errore che dice
No rule to make target 'banker.class', needed by 'classes'. Stop.
Ho solo una classe: banker.java
3
1 answers
Sembra banchiere.java non si trova nella stessa directory del Makefile.
In caso contrario, è necessario invece dire: "CLASSES = relative/path/to/banker.java"
Quindi, ad esempio, se hai una struttura di directory come questa:
MyProject
-jsrc
-banker.java
-jbin
-Makefile
E il tuo banchiere.java è in MyProject / jsrc, quindi è necessario modificare
CLASSES = banker.java
Essere
CLASSES = jsrc/banker.java
E, a meno che non si desidera che il .file di classe per essere anche in jsrc, è necessario modificare
$(JC) $(JFLAGS) $*.java
Da A
$(JC) -d $(JCLASSDIR)/. $(JFLAGS) $*.java
E aggiungere
JCLASSDIR=jbin
In alto
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)
0
Author: wizurd, 2015-12-02 19:58:08