gpt4 book ai didi

c - gnu 科学库 (cblas) 符号查找错误

转载 作者:行者123 更新时间:2023-11-30 15:52:31 25 4
gpt4 key购买 nike

我在运行 gsl(gnu 科学库)的 cblas 部分时遇到问题。

下面的示例(来自 gsl 手册)完美地编译了链接,但是在运行时出现错误。这是在 Ubuntu 12.04 下。

gcc linsys.c -lgsl -lcblas -lm

./a.out: symbol lookup error: /usr/lib/libgsl.so.0: undefined symbol: cblas_dtrsv

 #include <stdio.h>
#include <gsl/gsl_linalg.h>

int
main (void)
{
double a_data[] = { 0.18, 0.60, 0.57, 0.96,
0.41, 0.24, 0.99, 0.58,
0.14, 0.30, 0.97, 0.66,
0.51, 0.13, 0.19, 0.85 };

double b_data[] = { 1.0, 2.0, 3.0, 4.0 };

gsl_matrix_view m
= gsl_matrix_view_array (a_data, 4, 4);

gsl_vector_view b
= gsl_vector_view_array (b_data, 4);

gsl_vector *x = gsl_vector_alloc (4);

int s;

gsl_permutation * p = gsl_permutation_alloc (4);

gsl_linalg_LU_decomp (&m.matrix, p, &s);

gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x);

printf ("x = \n");
gsl_vector_fprintf (stdout, x, "%g");

gsl_permutation_free (p);
gsl_vector_free (x);
return 0;
}

最佳答案

在我的 ubuntu 系统上,库名称为 gslcblas,完整路径为 /usr/lib/libgslcblas.so。我用这个库尝试了你的代码,它编译为:

gcc gl.c -lgsl -lgslcblas -lm

你能检查一下你是否有这个库并用它进行编译吗?如果没有,您也可以安装它:

sudo apt-get install libgsl0-dev

<小时/>

链接的库和输出:

$ ldd a.out 
linux-gate.so.1 => (0xb771d000)
libgsl.so.0 => /usr/lib/libgsl.so.0 (0xb74e5000)
libgslcblas.so.0 => /usr/lib/libgslcblas.so.0 (0xb74a7000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb72fc000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb72d0000)
/lib/ld-linux.so.2 (0xb771e000)

$ ./a.out
x =
-4.05205
-12.6056
1.66091
8.69377
$

关于c - gnu 科学库 (cblas) 符号查找错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14405601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com