【问题标题】:ldd library not found未找到 ldd 库
【发布时间】:2013-09-23 14:05:01
【问题描述】:

启动程序时出现以下错误:

加载共享库时出错:libnetcdf.so.6: cannot open shared object file: No such file or directory

重点是libnetcdf.so.6是旧版本的库,我已经删除了,新建了一个。

所以当我尝试ldd 时,我看到了:

libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000)

还有

libnetcdf.so.6 => not found

为什么是这个旧参考?有什么办法可以解决?

【问题讨论】:

    标签: linux g++ shared-libraries ldd


    【解决方案1】:

    您需要将您的应用程序重新链接到 libnetcdf.so.7,以便应用程序查找该文件而不是 .6

    您可能有一个符号链接,链接器将在没有版本号 (libnetcdf.so) 的情况下查看它,如果不存在,您可能需要在重新链接之前创建它:

    ln -s libnetcdf.so.7 libnetcfd.so
    

    如果您无法重新链接应用程序,那么您可以创建一个符号链接以使应用程序查看您的较新库(尽管如果库版本不兼容二进制文件,这可能会导致分段错误)指向实际的.so文件:

    ln -s libnetcfd.so.7 libnetcfd.so.6
    

    这将导致应用程序找到它需要的共享对象,但这不是理想的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2014-10-08
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多