AC コードで gsl ライブラリを使用しています。すべてうまくいきますが、コマンド gsl_linalg_cholesky_invert を使用すると、ターミナルに次のメッセージが表示されます。
Undefined symbols for architecture x86_64:"_gsl_linalg_cholesky_invert", referenced from:
_main in cc4eefuQ.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
コード例は次のとおりです。
#include <stdio.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_linalg.h>
#include <math.h>
void main()
{
gsl_matrix * A = gsl_matrix_calloc (2,2);
gsl_matrix_set(A,0,0,1);
gsl_matrix_set(A,0,1,0.5);
gsl_matrix_set(A,1,0,0.5);
gsl_matrix_set(A,1,1,1);
gsl_linalg_cholesky_decomp(A);
gsl_linalg_cholesky_invert(A);
}
行をコメントアウトするとgsl_linalg_cholesky_invert(A);
、すべてうまくいきます。
次のコマンドでコードをコンパイルします。
gcc-mp-4.7 wrapnorm.c -o wrapnorm -lgsl -l gslcblas -lm
マウンテン ライオンと gsl バージョン 1.9 を搭載した MacBook Pro を使用。
ありがとう