某日,本人要进行一些随机数方面的计算,所以就装了GSL,也就是大名鼎鼎的GNU Scientific Library,操作系统是ubuntu 14.04。安装GSL的时候非常顺利,无非是GNU软件的那一套,不放心的话,不妨读一下GSL自带的README。编译程序时,我把“-lgsl -lgslcblas”写到makefile里面。本以为就是这么简单,没想到还是遇到了一点问题。听我细细道来吧。。。
make的时候也没啥问题,可是当我执行生成的文件时,问题出现了,系统提示“error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory”。通常,出现这种问题可能是因为GSL安装目录没有在系统的默认共享库目录中。一般情况下,linux的默认共享库目录是/lib和/usr/lib。不幸的是,GSL的共享库文件默认安装在/usr/local/lib中(白纸黑字写在GSL给出的INSTALL文件中,所以请你认真读说明文档),所以,gcc无法找到libgsl.so.0。系统怎样才能找到/usr/local/lib中的共享库文件呢?
LD_LIBRARY_PATH是linux的一个环境变量,主要用于系统查找除默认共享库目录以外的其他共享库目录。编辑这个变量很简单,直接在终端里面分别输入以下命令即可: