我正在运行一个代码(iHARM2D),它需要群集上的GNU scientific library library(GSL)。由于GSL库没有安装在集群上,我必须在那里编译它,并在编译实际代码时正确链接它。在我的shell脚本我写链接到群集上的GNU科学库?
cd whereGSLsource
./configure --prefix=/homefolder/iHARM/GSLcompiled
make && make install
这编译GSL并将结果放置在/ homefolder/iHARM/GSLcompiled/lib目录,/ homefolder/iHARM/GSLcompiled /包括等
据this answer,我应该能够通过我的主要代码
export CPATH="/homefolder/iHARM/GSLcompiled/include":$CPATH
export LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LIBRARY_PATH
但是在编译之前写以下行到我的shell脚本来编译,这似乎并没有因为编译返回类型“未定义参考`的错误正确链接GSL gsl_some_fun ction'”。 (当GSL的默认安装和使用链接它工作在我的电脑上。)
由GSL输出提出另一种可能在编译期间或this answer是修改LD_LIBRARY_PATH变量
LD_LIBRARY_PATH="/homefolder/iHARM/GSLcompiled/lib":$LD_LIBRARY_PATH
但这给出了同样的结果。同样它没有当我尝试使用-L和-I选项
cd iHARM
gcc -someoptions -I../GSLcompiled/include/ -L../GSLcompiled/lib ./some.o -o harm
由GSL提出另一种选择是使用
gcc -someoptions -Wl,-rpath -Wl,"/homefolder/iHARM/GSLcompiled/lib" ./some.o -o harm
然而,无论这些工作的链接。
如何正确链接GSL?
(我不是很在这个经历了那么这也可能是语法或使一些非常基本的错误。)
您的'--prefix'设置可能太具体。请参阅https://stackoverflow.com/a/16363784/841108 –