代码之家  ›  专栏  ›  技术社区  ›  bob.sacamento

正在查找丢失的共享库

  •  1
  • bob.sacamento  · 技术社区  · 11 年前

    在Linux系统上,我试图运行一个Fortran程序,该程序利用了一些共享库(netCDF-libs,如果有区别的话)。在我跑步之前,我设置 LD_LIBRARY_PATH 这样它就指向了我的图书馆的位置。然后我运行可执行文件,很快就得到了错误

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

    现在,我仔细检查 LD库路径 ,然后cd到它,找到平淡的日子

    $ls*ff美元*

    $libnetcdff.a libnetcdoff.la libnetcdff.so libnetcdffe.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库路径 指向。

    谢谢

    1 回复  |  直到 4 年前
        1
  •  2
  •   Kyle Kanos    11 年前

    图书馆链接应该可以使用。既然您提到您没有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 .