如何在Linux中正确安装gsl库?

时间:2011-08-11 22:56:23

标签: c linux installation gsl

我在安装GNU Scientific Library(gsl)时遇到了问题。 根据所包含的文件,我将软件包放在桌面上,然后执行“./configure”,“make”和“sudo make install”。我检查了/ usr / local / include目录,里面有一个新创建的“gsl”文件夹。但是当我尝试使用库提供的函数时,出现了“对'gsl_sf_beta_inc'的未定义引用”错误。这是我的代码。

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

int main (void)
{
    double a = 20;
    double b = 1000;
    double x = 0.5;
    double result = gsl_sf_beta_inc(a, b, x);
    printf("%f/d", result);
    return 0;
}

我感觉问题可能是由于我把软件包放在桌面上引起的,所以“make”命令生成的二进制代码就到了那里,这是错误的。 那么,我猜是正确的吗?如果是的话,我应该把它们放在哪里?如果不是,我该怎么办? 感谢。

2 个答案:

答案 0 :(得分:11)

假设make install成功,您需要链接库。

gsl's documentation说这应该有效 (注意gsl工作的两个必要的链接选项:“ - llsl -lgslcblas”):

gcc -I/usr/local/include -L/usr/local/lib main.c -o main -lgsl -lgslcblas -lm

替代“cblas”而不是gsl的cblas也可以按照:alternate cblas for gsl

答案 1 :(得分:2)

使用pkg-config --libs gsl找出必要的链接器,然后将它们链接起来。可选的是检查pkg-config --cflags gsl。第二个为您提供包含文件的目录(如果它们未安装在默认的/usr/include/目录中)。如果你在那里安装它,你可以忽略它。
pkg-config --libs gsl的输出为
-lgsl -lgslcblas -lm
这意味着必须将这三者联系起来。因此,在编译程序时,您可以通过以下方式执行此操作 gcc name.c -lgsl -lgslcblas -lm