linux 动态链接库搜索路径,【linux下动态链接库的搜索路径配置】-Linux/Unix/MAC OSX操作系统论坛-ZOL中关村在线...

在linux下一个二进制程序通常都会依赖于系统的动态链接库,它的原理是当程序运行的时候,动态地找到动态库并将其加载到自己的进程空间中去,本篇就来介绍一下动态库的搜索机制。

linux链接器为ld,它会在/etc/ld.so.conf文件中列出的目录中查找动态库,我本机的ld.so.conf文件内容如下:

include ld.so.conf.d/*.conf

可以看到,ld.so.conf支持用include指令引入其他配置,这样以来各个软件在安装时可以独立地添加库搜索路径,例如:

[leconte@localhost ~]$ ls /etc/ld.so.conf.d/

qt-i386.conf xorg-x11-i386.conf

可以看到qt和xorg分别将各自的配置放在ld.so.conf.d目录下,打开qt-i386.conf:

[leconte@localhost ~]$ cat /etc/ld.so.conf.d/qt-i386.conf

/usr/lib/qt-3.3/lib

可以看到,qt将/usr/lib/qt-3.3/lib/目录加入搜索路径。

另外,需要注意的是linux链接器在加载程序的时候不会总是先去解析一遍这些配置文件,ldconfig这个程序会事先负责解析ld.so.conf中的配置,将解析结果缓存在文件/etc/ld.so.cache中,链接器每次只需读取cache数据即可,这样可以大大加快加载的速度。

因此,每当你修改了ld.so.conf之后,都要记得手工执行一次ldconfig生成ld.so.cache,否则你的修改将不会生效。细心的话你会发现很多rpm包和deb包在新增了ld配置之后都会自动执行一次ldconfig的。

此外,如果没有在ld.so.conf中指定任何的路径,linux链接器也会默认在/usr/lib/和/lib/下进行寻找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值