寻找丢失的共享库

时间:2013-10-02 18:21:47

标签: linux fortran shared-libraries fortran90 netcdf

在Linux系统上,我正在尝试运行一个使用一些共享库的Fortran程序(netCDF库,如果这有所不同)。在我运行之前,我设置LD_LIBRARY_PATH以便它指向我的库的位置。然后我运行可执行文件,我很快得到错误

  

../ my_program:加载共享库时出错:libnetcdff.so.5:无法打开共享对象文件:没有这样的文件或目录

现在,我仔细检查LD_LIBRARY_PATH的值,然后cd到它并找到普通的日子

  

$ ls * ff *

     

$ libnetcdff.a libnetcdff.la libnetcdff.so libnetcdff.so.0 libnetcdff.so.0.0.0

所以libnetcdff绝对存在。

有人能指出我的问题吗?

我遇到的一件事是,可执行文件似乎想要找到libnetcdff.so.5,而存在的库实际上是libnetcdff.so.0。那是问题吗?如果是这样,有没有办法说服可执行文件不坚持“5”?或者,从libnetcdff.so.0到libnetcdff.so.5的链接会解决问题吗? (我在目录中没有权限,BTW,这就是为什么我还没有尝试过。)

环境信息:CentOS机器,用gfortran编译的代码。是的,当我编译时,我的-L标志指向LD_LIBRARY_PATH指向的同一目录。

感谢。

1 个答案:

答案 0 :(得分:1)

图书馆链接应该有用。由于您提到您没有root / sudo访问权限,因此您可以执行以下链接: 可以访问的文件:

ln -s /path/to/libnetcdff.so.0 /path/you/have/access/to/libnetcdff.so.5

然后添加/path/you/have/access/to/中的LD_LIBRARY_PATH