尝试运行VisIt时找不到libGLU.so.1

时间:2019-10-31 16:21:17

标签: shared-libraries libraries hdf5

一般问题

我一直在尝试运行多个程序(VisIt和Athena),并且在这两个程序上都有类似的问题-尽管共享库确实存在于其他位置,但是却找不到共享库。

代码输出/错误

尝试运行雅典娜给了我

[~athena/working]$ ~/athena/bin/athena -i athinput.blast >log
/nethome/myname/athena/bin/athena: error while loading shared libraries: libhdf5.so.103

或者,在运行VisIt时

[~/local/visit/bin]$ ./visit
Running: gui3.0.2
/localdata/myname/visit/3.0.2/linux-x86_64/bin/gui: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory

我尝试过的事情

如果我使用find -iname,我可以找到这两个库

[~/local/anaconda2]$ find -iname 'libhdf5.so.103'
./lib/libhdf5.so.103
./pkgs/hdf5-1.10.4-nompi_h3c11f04_1106/lib/libhdf5.so.103
./pkgs/hdf5-1.10.4-hb1b8bf9_0/lib/libhdf5.so.103

[~/local/anaconda2]$ find -iname 'libGLU.so.1'
./lib/libGLU.so.1
./pkgs/libglu-9.0.0-hf484d3e_1/lib/libGLU.so.1

我需要做什么来指向他们。我尝试使用export CPATH更新我的编译器路径,并尝试将LDLIBS := -L/nethome/sferrel6/local/anaconda2/lib -lhdf5添加到Athena Makefile(之前帮助我找到了hdf5库)

1 个答案:

答案 0 :(得分:0)

  

我该怎么做才能指向他们

由于这些库未安装在默认系统位置,因此您必须 告诉动态加载程序在哪里可以找到它们。请参阅系统上的man ld.so

假设您在Linux上,可以通过以下方法进行操作:

  1. export LD_LIBRARY_PATH=$HOME/local/anaconda2/lib
  2. athena二进制文件与-Wl,-rpath=$HOME/local/anaconda2/lib
  3. 重新链接
  4. (需要root访问权限)。编辑/etc/ld.so.conf,向其中添加$HOME/local/anaconda2/lib,运行/sbin/ldconfig更新/etc/ld.so.cache