簡體   English   中英

如何在 Linux 中正確安裝 gsl 庫?

[英]How to CORRECTLY install gsl library in Linux?

我在安裝 GNU Scientific Library (gsl) 時遇到了問題。 根據隨附的文檔,我將 package 放在我的桌面上,並執行了“./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;
}

我感覺問題可能是因為我把package放在桌面上,所以“make”命令生成的二進制代碼放在那里,這是錯誤的。 那么,我的猜測正確嗎? 如果是,我應該把它們放在哪里? 如果不是,我該怎么辦? 謝謝。

假設make install成功,您需要鏈接庫。

gsl 的文檔說這應該有效
(注意 gsl 工作的兩個必要鏈接選項:“-lgsl -lgslcblas”):

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

替代“cblas”而不是 gsl 的 cblas 也是可能的: alternate cblas for gsl

使用pkg-config --libs gsl找出必要的鏈接器是什么,然后鏈接它們。 一個可選的事情是檢查pkg-config --cflags gsl 如果包含文件未安裝在默認的/usr/include/目錄中,則第二個為您提供包含文件的目錄。 如果你在那里安裝了它,你可以忽略它。
pkg-config --libs gsl將是
-lgsl -lgslcblas -lm
這意味着這三者必須聯系起來。 因此,在編譯程序時,您可以這樣做,
gcc name.c -lgsl -lgslcblas -lm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM