在使用Buildroot为我的Phidget SBC创建映像时,我遇到了一个不寻常的构建错误。这是不寻常的,因为它只发生在我的开发笔记本电脑上,而不是在我的通用笔记本电脑上,即使我使用的 Builroot 环境与 Phidgets自己发布的完全相同。
当我尝试创建我的 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 解决了这个问题。
谢谢你的帮助