gpt4 book ai didi

java - javac的Makefile编译问题

转载 作者:行者123 更新时间:2023-12-02 00:51:34 24 4
gpt4 key购买 nike

我的 makefile 有问题。我有三节课。他们做的事情非常简单。一个对减法进行加法,最后一个将实例化两者并简单地打印结果加法和减法。

现在,当我创建 makefile 时,我编译了 Plus.java 和 Minus.java,但不知道如何编译主类,因为它依赖于前两个类。如果可能的话,我想从 makefile 编译并运行它。

当我尝试运行 make 时得到上述结果:

javac -g Plus.class Minus.class
javac: invalid flag: Plus.class
Usage: javac <options> <source files>
use -help for a list of possible options
make: *** [Operation.class] Error 2

我不知道如何继续;如果我的问题太简单,请原谅我,但我是刚接触这些东西的人。我搜索了很多网站但没有答案。

这是我的 Makefile:

JCC = javac

JCR = java

JFLAGS = -g

default: Operation.class

Plus.class: Plus.java
$(JCC) $(JFLAGS) Plus.java

Minus.class: Minus.java
$(JCC) $(JFLAGS) Minus.java

Operation.class: Operation.class
$(JCC) $(JFLAGS) Operation.class

run: Operation.class
$(JCR) Operation.class

clean:
$(RM) *.class

最佳答案

您需要将源文件的名称传递给javac:

javac -g Plus.java

更好的选择可能是:

javac -g *.java

Java 世界中很少有人直接调用 javac 或使用 makefile。大多数人在开发时使用 IDE:

eclipse :http://www.eclipse.org
网 bean :http://www.netbeans.org

然后是用于最终/自动化构建的更全面的构建工具:

Ant :http://ant.apache.org/
Maven:http://maven.apache.org/

这两个都可以从 make 调用,或者实际上调用 make 本身,以便与您现有的构建系统集成。

编辑:看来你的 makefile 有问题。看看这是否有效:

JCC = javac
JCR = java
JFLAGS = -g

all:
[TAB]$(JCC) $(JFLAGS) *.java

run:
[TAB]$(JCR) Operation

clean:
[TAB]$(RM) *.class

将 [TAB] 替换为实际的制表符 - 您可能知道这在 make 中非常重要!

关于java - javac的Makefile编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798696/

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