所以我要按照我的作业规则创建一个makefile。我们正在使用以下格式的Java文件:(vehicle).java,然后是(vehicle)Tester.java,其中(vehicle)被替换为不同的名称。
所以我完全迷失了两个问题。
为何时输入输入创建目标,然后依赖项就位于相应的.java文件中。但是,我不知道如何以不涉及我为每个(车辆).java文件编写这样的目标的方式进行此操作。我不知道该如何使用通配符方法。
这类似于一个输入对象,它是何时输入的目标,并且取决于相应的(vehicle)Tester.java和(vehicle).java文件。
我都迷失了这两个。
我尝试将%符号与.class一起使用,但是默认的make无效,从我的阅读中得知是因为。优先。除此之外,我只是迷路了。
但是,我确实制作了分别编译所有测试器文件和非测试器文件的目标。我也有一个清洁的目标。我将在下面显示所有代码,但是我的两个问题都没有了
'''
个文件 all_java = $(过滤掉%Tester.java,$(通配符* .java))
vehicles_class = $(排序$(all_java:.java = .class))
test_class = $(排序$(all_java:.java = Tester.class))
车辆:$(vehicles_class)
测试:$(test_class)
.PHONY:干净 清洁: rm -rf * .class
.SUFFIXES:.java .class .java.class: javac $ < '''
因此,我已经有了(vehicle).java文件的默认目标,(vehicle)Tester.java文件的目标,并且可以进行所有工作。如我的测试所示,除非更新.java文件,否则这两个目标也无法再次编译