[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 ...
lapack を c++ で使う.
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++をつければよい。 .