启动程序时出现以下错误:
加载共享库时出错:libnetcdf.so.6:无法打开共享对象文件:没有这样的文件或目录
关键是libnetcdf.so.6该库的旧版本,我已将其删除并构建了新版本。
所以当我尝试时,ldd我看到:
libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000)
但是也
libnetcdf.so.6 => not found
为什么这个旧参考?我能做些什么来解决?
启动程序时出现以下错误:
加载共享库时出错:libnetcdf.so.6:无法打开共享对象文件:没有这样的文件或目录
关键是libnetcdf.so.6该库的旧版本,我已将其删除并构建了新版本。
所以当我尝试时,ldd我看到:
libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000)
但是也
libnetcdf.so.6 => not found
为什么这个旧参考?我能做些什么来解决?
您需要将您的应用程序重新链接到 libnetcdf.so.7,以便应用程序查找它而不是 .6
您可能有一个符号链接,链接器将在没有版本号 (libnetcdf.so) 的情况下查看它,如果不存在,您可能需要在重新链接之前创建它:
ln -s libnetcdf.so.7 libnetcfd.so
如果您无法重新链接应用程序,那么您可以创建一个符号链接以使应用程序查看您的较新库(尽管如果库版本不兼容二进制文件,这可能会导致分段错误)指向实际的 .so文件:
ln -s libnetcfd.so.7 libnetcfd.so.6
这将导致应用程序找到它需要的共享对象,但这不是理想的解决方案。