宮崎です。 数値計算ライブラリ clapack に関する質問です。 適当な ML が見つからないので、Vine-ML に投稿します。 clapack をインストールしたのですが、自作のプログラムを コンパイルしようとすると、シンボルが未解決だと怒られます 。 (pc は、intel cerlon 800Mhz です。) /usr/local/bin/gcc-3.3.2 -DDEBUG -g -o test1 -Wall -L/usr/local/lib/atlas/Linux_PIIISSE1 -L/usr/local/lib/clapack -llapack -lcblaswr -lcblas -latlas -lF77 -lm -lefence test1.c /tmp/ccywYycf.o(.text+0x0): In function `main': /home/Miyazaki/physics/one-dim/effective_potential/test/test1.c:6: multiple definition of `main' /usr/local/lib/clapack/libF77.a(main.o)(.text+0x0): first defined here /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `main' changed from 239 in /usr/local/lib/clapack/libF77.a(main.o) to 217 in /tmp/ccywYycf.o /usr/local/lib/clapack/libF77.a(main.o)(.text+0xa0): In function `main': : undefined reference to `f_init' /usr/local/lib/clapack/libF77.a(main.o)(.text+0xa7): In function `main': : undefined reference to `f_exit' /usr/local/lib/clapack/libF77.a(main.o)(.text+0xb1): In function `main': : undefined reference to `MAIN__' /usr/local/lib/clapack/libF77.a(sig_die.o)(.text+0x3a): In function `sig_die': : undefined reference to `f_exit' /tmp/ccywYycf.o(.text+0xce): In function `main': /home/Miyazaki/physics/one-dim/effective_potential/test/test1.c:26: undefined reference to `zgeev_' collect2: ld はステータス 1 で終了しました make: *** [debug] エラー 1 libF77.a でシンボル未解決のエラーが出てますが、この問題 以前に clapack パッケージで定義されている関数 zgeev_() のシンボ ル解決ができな いので困っています。 ライブラリは正常にインストールされています。 (もっと単純な dgesv_() を使ったテストプログラムは正常に コンパイルでき、 正しく動作することは確認しています。) プラグラムには、blaswrap.h、f2c.h、clapack.h をこの順番 で inlcude してあります。 また、コンパイル時に -Wl,--verbose -Wl,-v を付けて出力さ せると、 ちゃんとパスが通っていて、必要なライブラリは認識されてい るように見えま す。 (前略) collect2 version 3.3.2 (i386 Linux/ELF) attempt to open /usr/local/lib/atlas/Linux_PIIISSE1/liblapack.a succeeded attempt to open /usr/local/lib/clapack/libcblaswr.a succeeded attempt to open /usr/local/lib/atlas/Linux_PIIISSE1/libcblas.a succeeded attempt to open /usr/local/lib/atlas/Linux_PIIISSE1/libatlas.a succeeded attempt to open /usr/local/lib/clapack/libF77.a succeeded attempt to open /usr/lib/libm.so succeeded -lm (/usr/lib/libm.so) attempt to open /usr/lib/libefence.a succeeded GNU ld version 2.14 20030612 (以上、必要なところだけ抽出) (後略) Linux_PIIISSE1 ディレクトリ以下の liblapack.a のシンボル リストを確認する と、zgeev_ はちゃんと存在してます。 nm -g liblapack.a | grep zgeev_ 00000000 T zgeev_ 無関係だとは思いますが、zgeev_ 中でフラグが U の関数をチ ェックしました が、liblapack.a、libcblaswr.a、libF77.a、libm.a 内で定義 されていることは 確認済です。 liblapack.a、libcblaswr.a、libcblas.a、libatlas.a、libF77.a 、libm.a、 libefence.a のファイル属性はいずれも、 -rw-r--r-- 1 root root であることもチェック済です。 もう完全にお手上げで、どこが原因なのか全然わかりません。 どなたか解決策のヒントでもごぞんじないでしょうか?