source: https://caosiyang.github.io/posts/2017/03/21/ldconfig/

Linux 下指定动态链接库查找路径有以下方法,设置环境变量或修改配置文件。

设置环境变量 LD_LIBRARY_PATH,当前 session 下立即生效,logout 后失效

# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib

可以将此命令添加到 ~/.bash_profile,后续 login 依然有效

# echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/your/lib" >> ~/.bash_profile
# source ~/.bash_profile

/etc 下以ld.so开头的文件和目录,指定了动态链接库查找路径

  • /etc/ld.so.conf

支持 include 子配置文件,扩展之后,即包含一系列以逗号/冒号/TAB/换行符分隔的动态链接库目录

  # cat /etc/ld.so.conf
  include ld.so.conf.d/*.conf
  • /etc/ld.so.conf.d/

动态链接库路径配置文件,结构清晰,适合为某个特定项目指定动态链接库路径

  • /etc/ld.so.cache

内容是动态链接库的具体关联,本身是二进制文件,可使用 ldconfig 读取内容

修改 ld.so.confld.so.conf.d 下添加配置文件后,运行 ldconfig 使之立即生效。

ldconfig 命令在以下目录内查找动态链接库,建立关联,生成 cache, 即 /etc/ld.so.cache

  • 命令行指定目录
  • /etc/ld.so.conf 指定目录
  • /lib
  • /lib64
  • /usr/lib
  • /usr/lib64

查看动态链接库关联

# ldconfig -p | less