我使用的是一个SEMECS库,一个依赖项是libb2 BLACK2库,我安装了这个库并成功地安装了它,但是它在usr/local/lib中,看起来SEMECS在usr/lib中查找它,所以它会生成以下错误
./semecs: error while loading shared libraries: libb2.so.1: cannot open shared object file: No such file or directory
发布于 2021-03-09 19:46:55
设置LD_LIBRARY_PATH环境变量。这与$PATH类似,但用于定位共享库。
这通常是在~/.bashrc中设置的:
export LD_LIBRARY_PATH="/usr/local/lib:/usr/lib"还有一个ldd命令,它允许您检查二进制文件所使用的共享库(以及从哪些路径):
ldd myprogram例如:
[sh @ balrog] ~ 7 % ldd /bin/ls
linux-vdso.so.1 (0x00007ffcdd75b000)
libgtk3-nocsd.so.0 => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007fa9ab768000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fa9ab540000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa9ab14f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa9aaf4b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa9aad2c000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa9aaaba000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa9abb91000)最后,有ldconfig为共享库重新创建链接器缓存;当您刚刚构建了一个新的共享库时,这是非常有用的,而且它可能还没有在缓存中:
sudo ldconfighttps://askubuntu.com/questions/1322368
复制相似问题