Linux编程下的LD_LIBRARY_PATH环境变量、Linux下管理共享库

本文详细介绍了Linux系统中共享库的加载方式,包括通过LD_LIBRARY_PATH环境变量指定库路径的方法,以及如何通过编辑/etc/ld.so.conf并运行ldconfig来添加非标准路径。此外还解释了如何在用户配置文件中永久设置这些环境变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    1.Linux系统会从LD_LIBRARY_PATH环境变量给定的路径去搜索shared libraries(共享动态库),如果你的.so文件所在的path没有加到LD_LIBRARY_PATH环境变量中,那么所有需要这个.so的程序无法运行。

    echo $LD_LIBRARY_PATH查看这个环境变量的值。

    Linux编程下的LD_LIBRARY_PATH环境变量是基于shell的,只有在当前设置的shell里才有用,打开新的shell要重新设置LD_LIBRARY_PATH环境变量。如何一劳永逸不再重新设置,方法是在~/.bash_profile文件中设置环境变量: export LD_LIBRARY_PATH=¥LD_LIBRARY_PATH:your_path


    2./etc/profile是系统的配置文件

    ~/.bash_profile或者~/.bashrc(centos系统)是用户自己的配置文件。

    source ~/.bashrc #使环境变量立即生效。


    3.在Linux中,共享库的寻找和加载是由/lib/ld.so实现的。ld.so在标准路径(/lib,/usr/lib)中寻找应用程序用到的共享库。但是如果用到的共享库在非标准路径下,ld.so如何找到它?

    通常做法是将非标准路径加入到/etc/ld.so.conf,然后运行Idconfig生成/etc/ld.so.cache。ls.so加载共享库的时候,会从ld.so.cache查找。

    实际上Linux系统也会从LD_LIBRARY_PATH环境变量给定的路径去搜索shared libraries(共享动态库),所以修改LD_LIBRARY_PATH环境变量也可以


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值