我似乎无法理解这个问题。我有一个简单的项目,我把它放在一起用于教育目的,但是,无论如何,它都不会编译。我无法弄清楚我错过了什么。下面是makefile:
SHELL := /usr/bin/env bash
JFLAGS = -g -classpath "$(PWD)/src/tld/assignments/;$(PWD)/lib/;$(CLASSPATH)"
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = src/tld/assignments/StoreDao.java \
src/tld/assignments/Store.java
default: classes
classes: $(CLASSES:.java=.class)
clean: $(RM) *.class
StoreDao编译,但商店,引用StoreDao没有,并说:
src/tld/assignments/Store.java:9: cannot find symbol
symbol : class StoreDao
我尝试过使用斜杠和没有,冒号,分号等的类路径 - 没有区别。
特别通知,因为我知道有人肯定会这么说。不,我不想/不能使用Ant或Maven。这项任务的重点是使用GNU Make。 (我可以用Ant或Maven等做,这不是问题)。
另一个注意事项,为了以防万一,我调查了类似的问题发布到SO - 这些都不是我的情况(所有其余的都证明是语法错误或海报方面的某种遗忘,这不是)。
提前谢谢。
答案 0 :(得分:0)
相当出色,尽管javac忽略了路径命名中的所有约定,但它在不同的OS上也不一致,因此,Linux上的路径分隔符似乎不是分号 - 它是冒号。
当然,官方手册从未提及,因为用户在运行程序之前应该具备必备知识...... 叹息