[英]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.