当我在Ubuntu 14.04操作系统下运行我的Fortran代码时,出现以下错误:error while loading shared libraries: libnetcdff.so.6: cannot open shared object file: No such file or directory
。我看到ldd KiD_SC_2D.exe
的ld路径,但似乎找到了libnetcdff
:
beata@beata-HP-Z420-Workstation:~/Downloads/kid_a_setup/bin$ ldd KiD_SC_2D.exe
linux-vdso.so.1 => (0x00007fffd83a4000)
libnetcdff.so.6 => /home/beata/netcdf/lib/libnetcdff.so.6 (0x00007f3849432000)
libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007f3849101000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3848dfa000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3848be4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f384881f000)
libnetcdf.so.7 => /home/beata/netcdf/lib/libnetcdf.so.7 (0x00007f3848533000)
libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007f38482f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3849694000)
当我跑gdb
时,我收到以下警告:
warning: the debug information found in "/lib64/ld-2.19.so" does not match "/lib64/ld-linux-x86-64.so.2" (CRC mismatch)
此警告是否可能导致libnetcdff.so.6
问题?那么如何解决这种CRC不匹配问题呢?
答案 0 :(得分:1)
这个警告是否可能引起libnetcdff.so.6的问题?
不,这完全不相关。
我如何解决这种CRC不匹配问题?
不匹配表示libc6
和libc6-dbg
软件包的已安装版本不匹配。更新libc6-dbg
以匹配已安装的libc6
,警告应该消失。
至于找不到libnetcdff.so.6
的原因,你并没有告诉我们整个故事。显然ldd
确实找到了它,并且还应该运行KiD_SC_2D.exe
。要调试它,您可能希望像这样运行它:
cd ~/Downloads/kid_a_setup/bin
env LD_DEBUG=files,libs ./KiD_SC_2D.exe
这应该告诉您动态链接器在哪里寻找libnetcdff
。