在 Linux/Unix 系统中,动态库(.so 文件)的搜索路径由动态链接器(ld.so 或 ld-linux.so)管理。以下是设置动态库搜索路径的全面方法,适用于开发和生产环境:
1. 临时设置搜索路径(仅当前会话有效)
使用 LD_LIBRARY_PATH 环境变量临时添加库的搜索路径:
bash
export LD_LIBRARY_PATH=/path/to/your/libs:$LD_LIBRARY_PATH
适用场景:快速测试或临时解决库加载问题。
缺点:重启终端或关闭会话后失效。
2. 永久设置搜索路径
(1) 修改 ~/.bashrc 或 ~/.bash_profile
将以下行添加到用户配置文件中:
bash
echo 'export LD_LIBRARY_PATH=/path/to/your/libs:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc # 立即生效
适用场景:个人开发环境。
缺点:仅对当前用户生效,且可能与其他程序冲突。
(2) 修改系统级配置(需 root 权限)
全局设置:编辑 /etc/ld.so.conf 文件,添加库路径:
bash
sudo sh -c 'echo "/path/to/your/libs" >> /etc/ld.so.conf'
sudo ldconfig # 更新缓存
直接创建配置文件:在 /etc/ld.so.conf.d/ 下创建自定义配置文件(如 mylibs.conf):
bash
echo "/path/to/your/libs" | sudo tee /etc/ld.so.conf.d/mylibs.conf
sudo ldconfig
适用场景:多用户环境或生产环境。
优点:对所有用户生效,且系统重启后仍有效。
3. 编译时嵌入搜索路径(rpath)
在编译时通过 `-W