目录

Linux动态链接库查找路径

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