Linux动态库查询路径设置(LD_LIBRARY_PATH)

目录

  • [1 背景](#1 背景)
  • [2 动态库查询路径](#2 动态库查询路径)
  • [2.1 设置临时路径](#2.1 设置临时路径)
  • [2.2 设置永久路径](#2.2 设置永久路径)
  • [3 注意](#3 注意)

1 背景

Linux下动态库查询路径与Windows不同,即使动态库文件与可执行程序在相同目录下也是找不到的。

2 动态库查询路径

在Linux系统中,动态库查找路径通常由以下几个环境变量决定:

  • LD_LIBRARY_PATH:这个环境变量包含了一系列用冒号分隔的目录,在这些目录里面查找动态库。

  • /etc/ld.so.conf 文件和 /etc/ld.so.conf.d/ 目录下的文件:这些文件列出了动态链接器查找共享库的默认目录。

    • /etc/ld.so.conf文件内容如下:

      shell 复制代码
      $ cat /etc/ld.so.conf
      include /etc/ld.so.conf.d/*.conf
    • /etc/ld.so.conf.d/下文件如下:

      shell 复制代码
      $ ll /etc/ld.so.conf.d/
        -rw-r--r-- 1 root root  168 Nov 22  2023 i386-linux-gnu.conf
        -rw-r--r-- 1 root root  182 Mar  9  2022 ld.wsl.conf
        -rw-r--r-- 1 root root   44 Apr 15  2020 libc.conf
        -rw-r--r-- 1 root root  100 Apr 15  2020 x86_64-linux-gnu.conf
        -rw-r--r-- 1 root root   56 Nov 22  2023 zz_i386-biarch-compat.conf
    • 其中x86_64-linux-gnu.conf文件内容如下:

      shell 复制代码
      $ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
      # Multiarch support
      /usr/local/lib/x86_64-linux-gnu
      /lib/x86_64-linux-gnu
      /usr/lib/x86_64-linux-gnu
  • 系统默认路径 /lib 和 /usr/lib:即使没有设置环境变量,系统默认路径也是动态库查找的地方。

2.1 设置临时路径

如果你想要临时添加一个查找路径,可以在终端中使用以下命令:

shell 复制代码
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/library

2.2 设置永久路径

  • 如果你想要永久添加一个查找路径,可以将上述命令添加到你的 ~/.bashrc 或 ~/.profile 文件中。
  • 如果你想要修改 /etc/ld.so.conf 或 /etc/ld.so.conf.d/ 中的配置,你需要具有管理员权限。例如,你可以创建一个新的 .conf 文件在 /etc/ld.so.conf.d/ 目录下,并添加你的库路径,然后运行 ldconfig 命令来更新缓存。
    • 例如,创建一个新的 .conf 文件:

      shell 复制代码
      sudo sh -c 'echo "/path/to/library" > /etc/ld.so.conf.d/mylibrary.conf'
    • 然后更新配置:

3 注意

请注意,修改系统级的动态库路径需要谨慎,因为这会影响到系统中所有使用动态链接器的程序。

相关推荐
GeW3 小时前
超详细!RHCE10版通用备考策略,内含评分细则解读
linux
用户041328465134 小时前
Linux 服务开机自启动怎么配置?systemctl enable 原理详解
linux
BreezeJiang11 小时前
从域名到 Node.js:一次云服务器请求经过了哪些层?
服务器
草莓熊Lotso12 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
张文君13 小时前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
IT大白鼠13 小时前
Docker 实战 ELKF 日志监控:容器日志全栈收集分析方案
运维·docker·容器
贝锐21 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien20041 天前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
天远Date Lab1 天前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
2601_962074681 天前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器