为了账号安全,请及时绑定邮箱和手机立即绑定

使用 makefile 使用 javac 编译时出现“错误:找不到符号”

使用 makefile 使用 javac 编译时出现“错误:找不到符号”

MMMHUHU 2023-10-13 17:27:29
我的目录目前看起来像这样├── Makefile├── run_tests (Unix executable)└── src    └── vehicles        ├── Wheels.java        └── Cars.java    └── RunProgram.java    tests    └── test1.txt    └── test2.txtRunProgram.java 是我的主要。在网上查看,我目前有一个如下所示的 Makefile:JFLAGS = -gJC = javac.SUFFIXES: .java .class.java.class:    $(JC) $(JFLAGS) $*.java CLASSES = \    src/vehicles/Wheels.java \    src/vehicles/Cars.java \    src/RunProgram.java default: classesclasses: $(CLASSES:.java=.class)clean:    $(RM) *.class我现在有两个主要问题。1. Cars.java 为 Wheels 抛出“错误:找不到符号”,即使它首先编译了 Wheels(之前我的顺序错误,现在是正确的)。2.我最终需要在 Makefile 中添加一个“测试”,这也有其自身的问题。本质上,run_tests 会通过 System.in 将所有内容放入测试文件夹中。但是,在另一个目录中运行内容时遇到问题,因此我必须将 RunProgram.class 输出到根目录。当包结构中唯一的程序是 RunProgram.java 时,这就是我从命令行运行测试的方式javac -d ./ ./src/RunProgram.java ./run_tests "java RunProgram"但是,当我现在尝试运行 javac 时,出现包导入不存在的错误。这就是我使用 Makefile 的原因,因为这是理想的解决方案。TL;DR我需要一种方法来使用 Makefile 编译我的程序并编写一个可以正确调用 run_tests 的“make test”命令我也愿意接受一个解决方案,允许我从命令行运行 javac 并从那里运行测试,但首选 Makefile
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

解决这个问题我能做的最好的事情就是制作一个 jar 文件,然后做./run_tests "java -jar RunProgram.jar"显然不理想,但它有效。



查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信