【发布时间】:2020-06-02 18:32:12
【问题描述】:
我意识到 make 并不是用于 Java 的最佳工具,但我只是想尝试一下。我有这个脚本,但我不确定它为什么不起作用:
JFLAGS = -g
JC = javac
SRC_DIR = $(PWD)
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
$(SRC_DIR)/Fibonacci_Methods.java \
$(SRC_DIR)/Fibonacci_Methods_Test.java \
default: classes
classes:
$(CLASSES:.java=.class)
clean:
$(RM) *.class
我得到这个错误:
/path/to/make_test/Fibonacci_Methods.class
/path/to/make_test/Fibonacci_Methods_Test.class
make: /path/to/make_test/Fibonacci_Methods.class: No such file or directory
make: *** [classes] Error 1
我不知道为什么。我的理解是这个脚本应该定义CLASSES,它应该调用.java.class目标,因为我正在定义以.java结尾的文件。我不知道$(CLASSES:.java=.class) 的目的,因为我原以为在这一步之前就已经完成了编译。
顺便说一下,我还没有编译 java 代码(所以我只用 .java 文件运行 make,如果这有区别的话)。
【问题讨论】:
-
标签在 Makefile 中很重要。这些行是用制表符还是空格缩进的?