linux运行时提示找不到某个so

有时候通过linux编译安装一些程序会有类似这样的错误提示:

写道
yunpeng@yunpeng-duitang:/duitang/dist/sys/zookeeper-3.4.5/src/c$ cli_mt localhost:2181
cli_mt: error while loading shared libraries: libzookeeper_mt.so.2: cannot open shared object file: No such file or directory

 通过ldd命令可以分析程序依赖的so

写道
yunpeng@yunpeng-duitang:/duitang/dist/sys/zookeeper-3.4.5/src/c$ ldd /usr/local/bin/cli_mt
linux-vdso.so.1 => (0x00007fff40fff000)
libzookeeper_mt.so.2 => /usr/local/lib/libzookeeper_mt.so.2 (0x00007fc1255d7000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1253a8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc125008000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc124d84000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc1257f4000)

linux 开发环境推荐的搭建方式.
可以在自己的home目录里(快捷方式:运行push ~ 或cd ~ 或 cd即可),分别建立bin lib目录.
然后 vim .bashrc
#在文件尾部 将bin lib 两个目录设置到这两个环境变量里来.
#. 注意这里一定是export. 不然不生效的.

  1. export PATH=.:$HOME/bin:$PATH
  2. export LD_LIBRARY_PATH=.:$HOME/lib:$LD_LIBRARY_PATH

#. 然后重启动shell 或者
. .bashrc 或者
source .bashrc 即可 重新设置环境变量.
#. 检查一下: echo $LD_LIBRARY_PATH 有值 就说明OK了.

猜你喜欢

转载自san-yun.iteye.com/blog/1973552