java 的 make 文件有问题
JFLAGS = -d bin -cp lib/slick.jar:lib/lwjgl.jar
JC = javac
.SUFFIXES: .java .class
.java.class: $(JC) $(JFLAGS) src/$*.java
CLASSES = \
Game.java \
Block.java \
BlockMap.java \
default: classes
classes: $(CLASSES:.java=.class)
clean: $(RM) bin/*.class
我的源文件位于 src/ 中,我希望编译后的文件位于 bin/ 中。当我运行 make 时,它给了我这个错误
makefile:7: *** multiple target patterns. Stop.
JFLAGS = -d bin -cp lib/slick.jar:lib/lwjgl.jar
JC = javac
.SUFFIXES: .java .class
.java.class: $(JC) $(JFLAGS) src/$*.java
CLASSES = \
Game.java \
Block.java \
BlockMap.java \
default: classes
classes: $(CLASSES:.java=.class)
clean: $(RM) bin/*.class
My source files are in src/ and I want to the compiled files to be in bin/ . When I run make, it gives me this error
makefile:7: *** multiple target patterns. Stop.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题在这里:
在这里:
这些不是规则,而是命令。并且命令必须位于其自己的行中并且在行的开头有一个制表符。
并不是说这些都是 Makefile 和 Java 的问题,特别是这个 Makefile 的问题。
The problem is here:
and here:
These are no rules but commands. And commands must be on its own lines with a tab at the beginning of the line.
Not that this are all problems with Makefiles and Java in general and this Makefile in particular.
由于您不知道如何管理
Makefile
,因此没有理由不使用更好的工具。这是一个可以完成这项工作的最小 Ant 文件。而且由于 Ant 是为 Java 设计的,因此 Make 的大多数目录处理问题根本不存在。作为奖励,您可以向任何 Java 开发人员寻求更多帮助。如今,Java 开发人员和 Makefile 专家是相当罕见的组合。
Since you don't know how to manage a
Makefile
there is no reason NOT to use a better tool. Here is a minimal Ant file which should do the job. And because Ant is designed for Java, most of the directory handling problems of Make simply don't exist.As a bonus you can ask any Java developer for more help. Java developers and Makefile experts are a quite uncommon match in these days.