2013-09-23 43 views
0

我收到以下错误启动我的程序:LDD库没有发现

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

关键是libnetcdf.so.6是图书馆的旧版本,我删除了它并构建了新版本。

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

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

而且

为什么这个古老的参考?我能做些什么来解决?

回答

3

您将需要重新链接您的应用程序li​​bnetcdf.so.7因此应用程序将查找,而不是0.6

你可能有一个符号链接,该链接会看没有版本号( libnetcdf.so)如果不存在,你可能需要重新链接之前创建它:

ln -s libnetcdf.so.7 libnetcfd.so 

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

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

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

+0

感谢您的回答! – user2617702

+0

没问题 - 很高兴帮助。你能将这标记为可接受的解决方案吗? –