【发布时间】:2011-11-12 01:43:24
【问题描述】:
我在使用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 仅依赖于来源并忽略 #类文件。始终重新生成所有 .class 文件并删除它们 #立即地。并将我们使用的模板文件复制到 classes 目录 #所以他们也被包括在内。
$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
@rm -rf 类 asm /bin/mkdir -p 类 asm /bin/mkdir -p $(gjdoc_gendir)/gnu/classpath/tools/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 命令以适应,除非在我的开发机器上它创建了一个错误的替代方案。作为参考,我的“常规”即工作生成文件是:
ANTLR = runantlr ANTLR_JAR = /usr/share/java/antlr.jar
在我的开发机器上安装 antlr 解决了这个问题。
感谢您的帮助
【问题讨论】:
标签: java buildroot gnu-classpath