[c++] lapack

# yum install gcc*
# yum install compat-gcc*


次のような test.c ファイルを用意する.

#include <stdio.h>
#include <python2.4/Numeric/f2c.h> 
#include <atlas/clapack.h>

...dgesv_(&N,&NRHS,A,&LDA,IPIV,b,&LDB,&INFO) のテストコード(ネットに転がってる)...


コンパイル

$ gcc test.c -O2 -Wall -lm -llapack -lblas 
  • -lm -llapack -lblas -lF77 の順番が大事
  • "-O2"と"-Wall"はそれぞれ「最適化しろ」,「警告を出しまくれ」
  • gcc, .c ファイル, -lF77 無し でコンパイルできた (例えば,g++ やら, .cc ファイルやらじゃだめだった.)
$ g++ test.c -O2 -Wall -lm -llapack -lblas -lF77
test.c: In function ‘int main()’:
test.c:54: error: ‘dgesv_’ was not declared in this scope
...


c++ のファイルをコンパイルするには,下記参照.

lapackc++ で使う.
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/LAPACK/

次の用にしてコンパイルすればよい.

$ g++ dgesv.cpp -O2 -Wall -lm -llapack -lblas -lstdc++

ちなみに,
http://stat.scphys.kyoto-u.ac.jp/~minami_a/linux/undefined.html

undefined reference to __gxx_personality_v0 というエラーが出ることがある。これを回避するにはコンパイルオプションに-lstdc++もしくは -lsupc++をつければよい。 .