У меня необычная ошибка сборки при использовании Buildroot для создания изображения для моего Phidget SBC .Это необычно, потому что это происходит ТОЛЬКО на моем ноутбуке для разработки, а НЕ на моем ноутбуке общего пользования, хотя я использую ТОЧНО ту же среду Builroot, что и , опубликованная самими Phidgets .
Когда я пытаюсь создатьмой образ 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), которые я используюна каждом ноутбуке.Также я не могу найти параметр -o, задокументированный для Java, и не понимаю, почему он работает на одном ноутбуке, а не на другом.
Любые предложения будут полезны.
** ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ **
Я взглянул на Makefile, и вот, что я думаю, соответствующие строки:
ANTLR = java -classpath antlr.Tool ...
# Для создания примера zip просто зависит от источников и игнорируйте # файлы классов.Всегда восстанавливайте все файлы .class и немедленно удаляйте их.И скопируйте файлы шаблонов, которые мы используем, в классы dir #, чтобы они также были включены.
$ (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 для соответствия, за исключением того, что на моей машине разработки это создало ошибочную альтернативу.Для справки мой «обычный», т. Е. Рабочий makefile:
ANTLR = runantlr ANTLR_JAR = /usr/share/java/antlr.jar
Установка antlr в моей разработкемашина решила проблему.
Спасибо за помощь