KAWA です。
# 長いです。
On Sat, 18 Jan 2003 19:15:36 +0900
katou <s-kato@xxxxxxxxxxxxxxxx> wrote:
> Vine Linux 2.5 FTP版 を利用しています。
> gcj を利用しようと思い
>
> apt-get install gcc-java
>
> でインストールをしたのですが、実行すると
>
> gcj: libgcj.spec: そのようなファイルやディレクトリはありません
>
> と言うエラーがでます。
java を使ったことはないのですが、gcc-3.2.1.tar.bz2 を展開/コンパイル/
インストールして使っています。いつか java を使うこともあろうかと思い、
configure で、`--enable-languages=c,c++,f77,java' と指定しています。
# c は指定しなくてもよいらしい。
Vine 2.1.5、2.5、2.6 を使っているのですが、Vine 2.6 では次のようになり
ます。( 加藤さんがお使いの 2.5 はいま手元にありません。関係ないと思いま
すが )
-----
$ locate libgcj
/usr/opt/gcc-3.2.1/lib/gcc-lib ← 長いので改行
/i686-pc-linux-gnu/3.2.1/include/gcj/libgcj-config.h
/usr/opt/gcc-3.2.1/lib/libgcj.so.3
/usr/opt/gcc-3.2.1/lib/libgcj.so.3.0.0
/usr/opt/gcc-3.2.1/lib/libgcj.so
/usr/opt/gcc-3.2.1/lib/security/libgcj.security
/usr/opt/gcc-3.2.1/lib/libgcj.la
/usr/opt/gcc-3.2.1/lib/libgcj.a
/usr/opt/gcc-3.2.1/lib/libgcj.spec
/usr/opt/gcc-3.2.1/share/java/libgcj-3.2.1.jar
-----
.so や .a に加えて libgcj.spec も存在します。その内容は
-----
#
# This spec file is read by gcj when linking.
# It is used to specify the standard libraries we need in order
# to link with libgcj.
#
%rename lib liborig
*lib: -lgcj -lm -lpthread -ldl %(libgcc) %(liborig)
*jc1: -fhash-synchronization ← 長いので改行
-fno-use-divide-subroutine -fuse-boehm-gc -fnon-ca
ll-exceptions -fkeep-inline-functions
-----
となっていて、リンクオプションなどを指定しているようです。
> と言うパッケージがあるのですが、VinePlusには
>
> gcc-java-2.95.3-2vl22.i386.rpm
>
> しかありません。libgcjが無いようです。
ためしに、gcc-java-2.95.3-2vl22 をとってきてインストールしてみました。
ついでに、どこからか hello.java を拾って gcc-java-2.95.3 で
コンパイルしてみました。
-----
$ LANG=C
$ /usr/bin/gcj hello.java
gcj: libgcj.spec: No such file or directory
-----
となりますね。加藤さんが体験された通り、コンパイル以前の問題です。
gcc-2.95.3.tar.bz2 や、Vine の gcc-2.95.3 系の src.rpmをインスト
ールしてできた tar.bz2/gz を `--eneble-languages=java'、
`--prefix=無害なディレクトリ' としてインストールしたうえで試して
みても同じでしょうか?
gcc-3.2.1 の gcj ではこのようになりません。どこからか取ってきた
hello.java が悪いのか私が悪いのか知りませんが、とにかく「hello.java の
ここがいけないよ」といったエラーメッセージが出ているので、gcc の java
フロントエンドは`正常に'動作しているのでしょう。( 自信なし )
> aptからのインストールはあきらめて、tarボールからインストール
> しなければいけませんか? それともやはりなにかを、私が見落とし
> ているのでしょうか。
同じような経験をしている人は多いようです。上のエラーメッセージ
gcj: libgcj.spec: No such file or directory
を google の検索欄にコピーして検索すればヒントが見つかると思います。
> もの知らぬ私にアドバイスよろしくお願いします。
参考になるかどうか。コンパイラのインストールは慎重にしてください。問題
が解決されるといいですね。
--
KAWA