0

在使用Buildroot为我的Phidg​​et SBC创建映像时,我遇到了一个不寻常的构建错误。这是不寻常的,因为它只发生在我的开发笔记本电脑上,而不是在我的通用笔记本电脑上,即使我使用的 Builroot 环境与 Phidg​​ets自己发布的完全相同。

当我尝试创建我的 Buildroot 映像时,当它尝试编译GNU 类路径时出现以下错误:

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 文件并#immediately 删除它们。并将我们使用的模板文件复制到类目录#so 它们也被包含在内。

$(TOOLS_ZIP): $(ALL_TOOLS_FILES)

@rm -rf classes asm /bin/mkdir -p classes 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 解决了这个问题。

谢谢你的帮助

4

1 回答 1

3

我认为该行的问题是 -classpath 选项将 antlr.Tool 解释为类路径,然后尝试解析 -o 选项。

-o 选项是 org.antlr.Tool 命令行选项,它不是 JVM 选项。

启动 antlr 工具的正确方法是:

java org.antlr.Tool [options]

我很好奇那条执行线在工作的机器上是什么样子的。因为您向我展示的帖子绝对不正确。

于 2011-11-12T02:58:50.493 回答