Je cours un code (iHARM2D) qui exige le GNU scientific library library (GSL) sur un groupe. Comme la bibliothèque GSL n'est pas installée sur le cluster, je dois la compiler et la lier correctement lors de la compilation du code réel. Dans mon script shell j'écrisLiaison à la bibliothèque scientifique GNU sur cluster?
cd whereGSLsource
./configure --prefix=/homefolder/iHARM/GSLcompiled
make && make install
Cette compile le GSL et met les résultats dans/homefolder/iHARM/GSLcompiled/lib,/homefolder/iHARM/GSLcompiled/Include etc.
Selon this answer, je devrait être en mesure de compiler en écrivant les lignes suivantes dans mon script shell avant la compilation de mon code principal
export CPATH="/homefolder/iHARM/GSLcompiled/include":$CPATH
export LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LIBRARY_PATH
Cependant, cela ne semble pas lier GSL correctement parce que la compilation renvoie des erreurs du type « de référence non définie à` gsl_some_fun ction '". (Il fonctionne sur mon ordinateur lorsque l'installation par défaut et la liaison de GSL est utilisé.)
Une autre possibilité suggérée par la sortie GSL lors de la compilation ou this answer est de modifier la variable LD_LIBRARY_PATH
LD_LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LD_LIBRARY_PATH
Mais cela donne la même résultat. De même, il ne lorsque je tente de créer un lien en utilisant l'-L et option -I
cd iHARM
gcc -someoptions -I../GSLcompiled/include/ -L../GSLcompiled/lib ./some.o -o harm
Une autre option proposée par GSL était d'utiliser
gcc -someoptions -Wl,-rpath -Wl,"/homefolder/iHARM/GSLcompiled/lib" ./some.o -o harm
Cependant, aucun de ces travaux.
Comment puis-je lier correctement le GSL alors?
(je ne suis pas très expérimenté dans ce si cela pourrait aussi être une erreur très basique dans la syntaxe ou plus.)
Votre paramètre '--prefix' est probablement trop spécifique. Voir https://stackoverflow.com/a/16363784/841108 –