- ベストアンサー
Debian, gcc/f77 のライブラリが含まれるパッケージ
こんにちは。よろしくお願いいたします。今、Debian/Linuxにチャレンジしていて、色々なアプリケーションのインストールを試みています。そこで、とあるアプリケーションのソースを Web からダウンロードして make したところ、必要なライブラリが無い、と怒られてしまいました。 makefile を見て察するに、 gcc ***.c -lcblaswr -lF77 -lI77 の三つのライブラリが存在しないようです。 これらのライブラリが含まれる Debian のパッケージをご存知の方がいらっしゃいましたら、お教え願いませんでしょうか。あるいは、debパッケージでなくても、これらのライブラリを配布している Webサイトなどをご教授いただければ幸いです。 どうぞ、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちょっとググっただけなので、いいかげんなことを書いてる可能性高ですけど: http://www.is.titech.ac.jp/~kojima/PHoM/ にあるinstall noteによると"http://www.netlib.org/clapack/から持ってきてビルドしろ"って書いてるように見えます。 Debian packages に存在するなら、恐らく apt-cache search lapack dev で出てくるパッケージのどれかに入ってるんじゃないでしょうか。 ちなみにパッケージはapt-cacheやaptitude、それにここ↓で探せます http://www.debian.org/distrib/packages
その他の回答 (1)
apt-get install binutils apt-get install gcc をとりあえずやってみたら? >必要なライブラリが無い、と怒られて 具体的なエラー文が無いので判断できない。
補足
SAYKAさま、ご回答ありがとうございます。 早とちりで見当違いな質問をしてしまいました。 とりあえずライブラリが足りことが make 失敗の原因ではありませんでした。また、コンパイラは gcc ではなく、g++ でございました。 大変な失礼をしてしまいまして、申し訳ありませんでした。 ただし、make の最後の方の過程で、コンパイルに以下のライブラリを用いることが分かっています。 LAPACK = $(HOME)/lapack LAPACKLIB = -L$(LAPACK)/lib -llapack -lcblaswr -lcblas -lf77blas -lI77 -lF77 -latlas -lm そして、-lcblaswr, -lI77, -lF77 を指定して適当なソースをコンパイルしようとすると、 /usr/bin/ld: cannot find -lF77 collect2: ld returned 1 exit status のようなメッセージが表示され、コンパイルに失敗します。 ですので、いずれはこれらのライブラリが必要になる、と考えています。 一応、関係のありそうな、例えば以下のパッケージをインストールしてあります。 atlas3-base, atlas3-base-dev, atlas3-headers lapack3, lapack3-dev f2c, libf2c2, libf2c2-dev (もちろん gcc, g++, binutils も) 参考までに、make 中に表示された warning と エラーメッセージを以下にコピーします。ソースの内部に起因するエラーかもしれないと思いますので、C++について無知ですが、なんとかソースの修正を試みるつもりです。 ご返信をいただき、ありがとうございました。 ---↓ 繰り返し出た warning --- g++ -O3 -c equsolve.cpp In file included from /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/istream.h:31, from defs.h:48, from strucPATH.h:25, from equsolve.cpp:28: /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. ---↓ 最後のエラー --- g++ -O3 -c simplexK.cpp template.h: In function ‘void release(T*&)’: template.h:37: error: ‘NULL’ was not declared in this scope template.h: In function ‘void release(T**&, int)’: template.h:50: error: ‘NULL’ was not declared in this scope make: *** [simplexK.o] エラー 1
お礼
heiwa4126様、ご回答ありがとうございます。 お礼を申し上げるのが遅くなりまして、申し訳ありません。 そういえばインストールしようとしているソフトウェアの名称を書き忘れたと思っていたのですが、ご回答の中にありますとおり、ソフトウェアの名称は正しく PHoM でした。 コマンド apt-cache も知らず(aptitude のみ使っていました)、lapack の中に clapack が含まれるだろうなどと、馬鹿な勘違いをしており、また install note をよく読まないなどという、わたくしはとんでもない間抜けでございました。 どうやら clapack は Debianパッケージに無いようなので、まずは clapack のビルドを試みようと思います。 heiwa4126様のご回答をきっかけに色々調べて、知識が増えました。 たいへん感謝しております。どうもありがとうございました。