Comment installer correctement la bibliothèque gsl sous Linux?

J’ai eu un problème lors de l’installation de la bibliothèque scientifique GNU (gsl). J’ai mis le paquet sur mon bureau et ai fait “./configure”, “make” et “sudo make install”, selon le document inclus. J’ai vérifié le répertoire / usr / local / include, il y a un dossier “gsl” récemment créé. Mais lorsque j’ai essayé d’utiliser les fonctions fournies par la bibliothèque, l’erreur “une référence non définie à ‘gsl_sf_beta_inc'” s’est produite. Voici mon code.

#include  #include  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; } 

J’ai senti que le problème venait peut-être du fait que j’ai placé le paquet sur le bureau. Le code binary généré par la commande “make” y est donc insuffisant. Alors, ma proposition est-elle correcte? Si c’est le cas, où devrais-je les mettre? Si ce n’est pas le cas, que dois-je faire? Merci.

Vous devez relier la bibliothèque en supposant que make install a réussi.

La documentation de la gsl indique que cela devrait fonctionner
(notez les deux options de liaison nécessaires pour que gsl fonctionne: “-lgsl -lgslcblas”):

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

Une alternative “cblas” à la place des cblas de gsl est également possible selon: substitut de cblas pour gsl

Utilisez pkg-config --libs gsl pour savoir quels sont les linkers nécessaires et les lier. Une option serait de vérifier pkg-config --cflags gsl . La seconde vous donne le répertoire des fichiers d’inclusion s’ils ne sont pas installés dans le /usr/include/ par défaut. Si vous l’avez installé là-bas, vous pouvez simplement l’ignorer.
La sortie de pkg-config --libs gsl serait
-lgsl -lgslcblas -lm
Cela signifie que ces trois doivent être liés. Ainsi, lors de la compilation de votre programme, vous le faites en
gcc name.c -lgsl -lgslcblas -lm