我一直在尝试运行多个程序(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库)
答案 0 :(得分:0)
我该怎么做才能指向他们
由于这些库未安装在默认系统位置,因此您必须 告诉动态加载程序在哪里可以找到它们。请参阅系统上的man ld.so
。
假设您在Linux上,可以通过以下方法进行操作:
export LD_LIBRARY_PATH=$HOME/local/anaconda2/lib
athena
二进制文件与-Wl,-rpath=$HOME/local/anaconda2/lib
/etc/ld.so.conf
,向其中添加$HOME/local/anaconda2/lib
,运行/sbin/ldconfig
更新/etc/ld.so.cache
。