我刚买了一个这样的makefile
CLASSPATH=.:/usr/share/java/antlr.jar
Mipsim.class: Mipsim.java MipsimLexer.class MipsimLexerTokenTypes.class MipsimParser.class Memory.class Processor.class
javac -classpath .:/usr/share/java/antlr.jar Mipsim.java
Memory.class: Memory.java MemoryAccessible.class
javac Memory.java
Processor.class: Processor.java
javac Processor.java
MemoryAccessible.class: MemoryAccessible.java
javac MemoryAccessible.java
MipsimLexer.java MipsimLexerTokenTypes.java MipsimParser.java: Mipsim.g
antlr Mipsim.g
MipsimLexerTokenTypes.class: MipsimLexerTokenTypes.java
javac MipsimLexerTokenTypes.java
MipsimLexer.class: MipsimLexer.java
javac MipsimLexer.java
MipsimParser.class: MipsimParser.java
javac MipsimParser.java
clean:
rm -f *.class MipsimLexer.* MipsimLexerTokenTypes.* MipsimParser.*
我必须运行这个make文件,并构建目标代码。 然而,终端告诉了这个
antlr Mipsim.g
make: antlr: No such file or directory
make: *** [MipsimLexer.java] Error 1
我想在这种情况下可能无法找到anrlr.jar。所以我只是将CLASSPATH改为
CLASSPATH=.:/antlr.jar
并将antlr.jar放在同一个文件夹中,然后再次尝试。同样的错误又发生了......
有人可以帮帮我吗?
由于
答案 0 :(得分:0)
CLASSPATH=.:/antlr.jar
那不行。它说使用当前目录和 root 文件系统中的antlr.jar
文件(可能不存在)。
您可能想尝试:
CLASSPATH=.:./antlr.jar
并确保它在antlr
可执行文件的持续时间内存在。一些make
程序将在单独的shell中执行每个命令,因此更改CLASSPATH
可能无法继续执行。我倾向于将bash
“set变量用于一个进程”方法:
CLASSPATH=.:./antlr.jar antlr Mipsim.g
最重要的是,你通常运行antlr
的方法是运行java,给你想要运行的类,例如:
java -cp ./antlr.jar org.antlr.Tool Mipsim.g
如果你有一个可执行文件(或脚本)antlr
,它会为你做这件事,它似乎不在你的道路上。