使用Buildroot为Phidget SBC创建图片时,我遇到了异常的构建错误。这是不寻常的,因为它只发生在我的开发笔记本电脑而不是我的普通笔记本电脑上,即使我自己使用与published by Phidgets完全相同的Builroot环境。
当我尝试创建Buildroot图像时,在尝试编译GNU classpath时出现以下错误:
Making all in tools
make[2]: Entering directory `/home/xxxx/buildroot_phidgetsbc/buildroot-phidgetsbc_1.0.4.20111028/output/build/classpath-0.98/tools'
/bin/mkdir -p classes asm
/bin/mkdir -p ../tools/generated/gnu/classpath/tools/gjdoc/expr
java -classpath antlr.Tool -o ../tools/generated/gnu/classpath/tools/gjdoc/expr/ \
./gnu/classpath/tools/gjdoc/expr/java-expression.g
Unrecognized option: -o
Could not create the Java virtual machine.
make[2]: *** [tools.zip] Error 1
我可能的唯一区别是我在每台笔记本电脑上使用的不同Linux(Ubuntu)版本。此外,我找不到为Java记录的-o选项,也不明白为什么它在一台笔记本电脑上运行而在另一台笔记本电脑上运行。
任何建议都会有所帮助。
**附加信息**
我看了一下Makefile,这就是我认为的相关内容:
ANTLR = java -classpath antlr.Tool ...
#生成示例zip只依赖于源并忽略 #the类文件。始终重新生成所有.class文件并将其删除 #立即。并将我们使用的模板文件复制到类目录 #so他们也包括在内。
$(TOOLS_ZIP):$(ALL_TOOLS_FILES)
@rm -rf类asm / bin / mkdir -p类asm / bin / mkdir -p $(gjdoc_gendir)/ GNU / classpath中/工具/ gjdoc / EXPR
$(ANTLR)-o $(gjdoc_gendir)/ gnu / classpath / tools / gjdoc / expr / \
$(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
您可以在上面引用的最后一行中看到“问题”行的位置
**附加信息2&问题已解决**
我在'常规'机器上检查了Makefile,它与我的'开发'笔记本不同。我在'常规'机器上安装了'antlr',而不是我的开发机器。我假设当./configure运行时,它选择了这个并改变了antlr命令以适应除了在我的开发机器上它创建了一个错误的替代方案。作为参考,我的'常规'即工作makefile是:
ANTLR = runantlr ANTLR_JAR = /usr/share/java/antlr.jar
在我的开发机器上安装antlr解决了这个问题。
谢谢你的帮助
答案 0 :(得分:3)
我认为该行中的问题是-classpath选项,它将antlr.Tool解释为类路径,然后尝试解析-o选项。
-o选项是org.antlr.Tool命令行选项,它不是JVM选项。
启动antlr工具的正确方法是:
java org.antlr.Tool [options]
我很好奇在有效的机器上执行的那条线是什么样的。因为您展示的那个我的帖子肯定是不正确的。