2011年6月5日日曜日

-lmのエラーの修復

久しぶりにFortranプログラムをLinuxで動かそうと思い、x86_64対応のFedora12にインストールしたifortでコンパイルしてみる。すると、ld:cannot find -lm というエラーが出てしまった。そういえば、以前もこのエラーが出ていたが、コンパイルオプションの-fastを取り除いたら通ったので、気にしていなかったのだった。確かに今回も-fastを取り除くとうまく行く。しかし、libm.aが見つからないというのはおかしい。そこで、今回は逃げずに、このエラーを解決することに決めた。


まず、/lib, /usr/libなどを調べると、たしかにmathライブラリはインストールされている。/etc/ld.so.confにも定義は書いてあった。念のため、ldconfigを走らせてもみた。効果はまったくない。そこで思いついたのが、これらがx86_64に対応していないのではないか?という可能性。いろいろ調べると、glibc-staticを64ビット版にアップデートする必要があるらしいことが分かった。そこで早速、


yum install glibc-static


とする。するとglibc-static.x86_64がインストールされた。ということは、今まで入ってなかった、ということだ。この後、-fastをつけてifortでコンパイルしてみると、案の定うまく通った。これで、ひとつ問題が解決。

0 件のコメント: