vine-users ML アーカイブ



[vine-users:072694] Re: linker error on clapack

  • From: <xmhdy897@xxxxxxxxxxx>
  • Subject: [vine-users:072694] Re: linker error on clapack
  • Date: Sun, 21 Aug 2005 23:26:14 +0900 (JST)
宮崎です。

> 福原です.
> 
> > コンパイルの順番も、指示どおり clapack、atlas の
> > 順です。
> 
> BLAS が先にあった方がいいのかと思って,私は ATLAS
> を先に
> していました.もっともざっと見た感じでは,コンパイルの
順番は
> 関係ないような気がします.

多分順番は関係ないと思います。
atlas に、先に clapack をいれておけと書いて
あったので、それにしたがったまでです。

> シンボリックリンクなりコピーなりしたのなら,そう書いて
いただかないと
> わかりません.

google で検索したページの記述と、
clapack の install のドキュメントがごっちゃになって
しまって、シンボリックリンクするのがデフォルトだと
勘違いしてました。すいません。

> 私の所でマージしてみたら,-llapack で zgeev
> も使えるようになりました.

そうですか。なにがおかしいんだろう?
clapack 側の libclapack がうまくできていないのかしら?
でも、dgesv_() だと何も問題なくコンパイルが通るん
ですよね。

関係ないかもしれませんが、お使いの gcc と
binutils のバージョンを教えてもらえませんか。

> attempt to open
> ../../../ATLAS/lib/Linux_P4ESSE3/liblapack.so failed
> attempt to open
> ../../../ATLAS/lib/Linux_P4ESSE3/liblapack.a
> succeeded
> (../../../ATLAS/lib/Linux_P4ESSE3/liblapack.a)ieeeck.o
> (略)
> (../../../ATLAS/lib/Linux_P4ESSE3/liblapack.a)zgeev.o
> (略)
> 

確かに見えてますね。私のところでは、
liblapack.a 自体は見えてるのに、中のオブジェクト
ファイルまで進まないんです。
やっぱり正しくライブラリができてないのかな?

> となっていました.ファイルサイズは次のようになってます
.少しぐらいは
> 環境によって違うかもしれませんが,あまりに違うのであれ
ば,作り方の問題
> かもしれません.
> 
> 7972620  ATLAS/lib/Linux_P4ESSE3/liblapack.a    
> (マージ後)
>  310316  ATLAS/lib/Linux_P4ESSE3/liblapack.a-old
> (マージ前)
> 7770904  CLAPACK/lapack_LINUX.a
> 

私のところだと、マージしたあとで
ATLAS/Linux_PIIISSE1/liblapack.a のサイズは、

8178240

ですね。前のは、消してしまったの残ってませんが。

> # >>  attempt to open
> /usr/local/lib/atlas/Linux_PIIISSE1/liblapack.a
> succeeded
> # となっていて,
> # >> Linux_PIIISSE1 ディレクトリ以下の liblapack.a
> のシンボル
> # >> リストを確認する
> # >> と、zgeev_ はちゃんと存在してます。
> # というのは,結構不思議なのですが。

そうなんですよ。この出力を見ると、
リンカには atlas 側の liblapack.a は見えているはず
なんですよ。atlas/Linux_PIIISSE1/liblapack.a
に zgeev.o が入っているのは間違いないのですが、
なぜかシンボル解決できない。これが謎です。

> gcc (略) /usr/local/lib/clapack/liblapack.a (略)
> でも同じでしょう.

了解しました。

> ATLAS/doc/LibReadme.txt
> によれば,この方法では最適性能は出ないようですね.

そのようですね。

> >>libF77.a でシンボル未解決のエラーが出てますが
> このエラーに対する対処のつもりでした.言葉足らずですみ
ません.

勘違いしてました。