gpt4 book ai didi

java - 如何在项目的 makefile 中指定任何类的路径?

转载 作者:行者123 更新时间:2023-12-01 21:10:38 25 4
gpt4 key购买 nike

我有一个java项目,不同的目录包含不同的类。我试图在上层目录中创建一个 makefile,链接所有类并编译项目。因此,要到达类 a,应遵循路径 ./src/project/packageA/a.java,而要到达类 b,则应遵循路径 ./src/project/packageB/b.java。我有以下 makefile:

JFLAGS = -g
JC = javac
JVM = javac

.SUFFIXES: .java .class

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

CLASSPATH = .:./src/project

CLASSES = \
a.java \
b.java \
...

MAIN = Main

default: classes

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

run: $(MAIN).class
$(JVM)$(MAIN)

clean:
$(RM)*.class

其中 CLASSES 是包含项目中所有类的宏。我尝试为每个目录重新定义变量 PATH,分配 vpath 并直接在每个目录的类名中指定路径。但似乎都不起作用,我总是收到错误消息“没有构建‘类’所需的对象 a.class 的规则。”这是我第一次使用 makefile,我不知道如何继续。

谢谢大家。

最佳答案

一些小修复可以插入项目向前发展。

  • 修复编译规则 - JFLAGS 周围需要空格
  • 使用构建规则的输入文件 - 以便它将包含完整路径名
  • 添加 vpath 来告诉编译器源文件所在的位置
.java.class:
$(JC) $(JFLAGS) $^

CLASSPATH = .:./src/project

vpath %.java src/project

从问题中不清楚您想要将对象放置在哪里。考虑添加 -d 来指定目标文件夹,并设置添加 cp -d ... 来指定运行目标的位置。您将需要修复运行时间以添加空格。

关于java - 如何在项目的 makefile 中指定任何类的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902891/

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