認識されないオプション:-o Java仮想マシンを作成できませんでした

I've got an unusual build error when using Buildroot to create an image for my Phidget SBC. It's unusual because it occurs ONLY on my development laptop and NOT on my general use laptop even though I am using EXACTLY the same Builroot environment as published by Phidgets themselves.

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

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

** 追加情報 **

私はMakefileを見て、ここで私は関連する行だと思っています:

ANTLR = java -classpath antlr.Tool ...

     

#サンプルzipを生成するには、ソースに依存して無視してください    #theクラスファイル。すべての.classファイルを常に再生成して削除する    #immediately。そして、使用するテンプレートファイルをクラスdirにコピーします    #soも含まれています。

     

$(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

上に引用した最後のものに「問題」行がどこにあるかを見ることができます

** ADDITIONAL INFO 2 & PROBLEM RESOLVED **

私は私の「普通の」マシンでMakefileをチェックしました。それは私の「開発」ラップトップとは異なります。私は 'antlr'を私の 'regular'マシンにインストールしましたが、私の開発マシンにはなかったのです。私は、./configureが実行されたときに、これを選択してantlrコマンドを変更しましたが、私の開発マシン以外は誤った選択肢を作りました。参考までに、私の「普通の」つまりmakefileの作業は次のとおりです:

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

私の開発マシンにantlrをインストールすることで問題は解決しました。

助けてくれてありがとう

0
追加された 編集された
ビュー: 1

1 答え

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

-oオプションは、JVMオプションではないorg.antlr.Toolコマンドラインオプションです。

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

java org.antlr.Tool [options]

私は、動作するマシンでその実行ラインがどのように見えるのか不思議です。あなたが私にあなたの投稿を示した人は間違いなく間違っています。

3
追加された
@ruakh、うーん、私はあなたが正しいと思う、その第二の空間は間違いなく疑わしいと思われる。 Kerubuが作業マシンからのログラインを見れば、何が間違っているのかがわかると思います。
追加された 著者 Strelok,
ruakhが言ったように、適切に拡張されていない環境変数が存在する可能性があります。動作するマシンからその行を見て、問題が明らかになるでしょう。
追加された 著者 Strelok,
私はなぜ2台のマシンでそれが違うのだろうと困惑しています。しかし、makeファイルをANTLRのANTLR = java org.antlr.Toolの行に変更して、何が起こるかを調べることはできますか?
追加された 著者 Strelok,
+1。あなたが正しいと思います。 -classpathantlr.Tool の間に2つのスペースがありますか?私はいくつかの変数がそこに展開されていることを賭けています、何らかの理由で変数が空/未定義です。つまり、 java -classpath [space] VARIABLE [space] antlr.Tool ... の代わりに java -classpath [space] [space] antlr.Tool ... 、あなたが記述する問題を引き起こします。
追加された 著者 ruakh,
Strelokに感謝します。私は2つのBuildrootsをチェックする機会はありませんでしたが、関連するMakefile行を 'ptoblem'マシンから引用しました。あなたが示唆するように間違っているように見えます。それがなぜ1つのマシンで動作するのか、もう1つのマシンでは動作しないのかということは謎ですが、私はさらに調査し、報告します。
追加された 著者 Kerry,
今問題を解決しました。私が上記の追加情報に述べたように、Makefileは実際に異なっていました。私はMakefileの間違った行を変更しようとせず、欠けているantlrパッケージをインストールしました。あなたの助けにThanls
追加された 著者 Kerry,