vine-users ML アーカイブ



[vine-users:057713] Re: gcc-java のインストール

  • From: KAWA <kawa73@xxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:057713] Re: gcc-java のインストール
  • Date: Sun, 19 Jan 2003 07:50:49 +0900
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