1

我在 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。

谢谢

4

0 回答 0