0

Buildrootを使用してPhidg​​et SBCのイメージを作成すると、異常なビルド エラーが発生します。Phidg​​ets 自身が公開したのとまったく同じ Builroot 環境を使用しているにもかかわらず、これは私の開発用ラップトップでのみ発生し、一般的なラップトップでは発生しないため、異常です。

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 オプションを見つけることができず、なぜそれが 1 つのラップトップでは機能するのに他のラップトップでは機能しないのか理解できません。

どんな提案も役に立ちます。

** 追加情報 **

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 コマンドが適切に変更されたのだと思います。ただし、私の開発マシンでは、誤った代替が作成されました。参考までに、私の「通常の」つまり作業中のメイクファイルは次のとおりです。

ANTLR = runantlr ANTLR_JAR = /usr/share/java/antlr.jar

開発マシンにantlrをインストールすると、問題が解決しました。

助けてくれてありがとう

4

1 に答える 1

3

その行の問題は、antlr.Tool をクラスパスとして解釈し、-o オプションを解析しようとする -classpath オプションだと思います。

-o オプションは org.antlr.Tool コマンドライン オプションであり、JVM オプションではありません。

antlr ツールを起動する適切な方法は次のとおりです。

java org.antlr.Tool [options]

動作するマシンでその実行行がどのように見えるか興味があります。あなたが私に見せたものはあなたの投稿が間違いなく間違っているからです.

于 2011-11-12T02:58:50.493 に答える