0

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

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

关键是libnetcdf.so.6该库的旧版本,我已将其删除并构建了新版本。

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

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

但是也

libnetcdf.so.6 => not found

为什么这个旧参考?我能做些什么来解决?

4

1 回答 1

3

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

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

ln -s libnetcdf.so.7 libnetcfd.so

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

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

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

于 2013-09-23T14:14:19.450 回答