共享库查找顺序
今天开始尝试用Markdown导入一下我在有道云笔记的学习笔记,这是第一篇
0x00
以下内容的标题序号为查找顺序
0x01 环境变量LD_PRELOAD
这个不是共享库的路径,而是指定的共享库文件,会最先被装载(无论程序是否依赖他们),由于全局符号介入这个机制,这些库中符号可能会覆盖用户代码或标准C库中的同名全局符号(变量或函数)
0x02 环境变量LD_LIBRARY_PATH
由冒号隔开的共享库搜索路径
0x03 /etc/ld.so.cache指定的路径
ld.so.conf是一个文本配置文件,通过执行ldconfig来生成ld.so.cache
ld.so.conf内容典型示例:
include /etc/ld.so.conf.d/*.conf
/usr/local/lib
/lib/i486-linux-gnu
/usr/lib/i486-linux-gnu
ldconfig不光可以更新这个cache,而且可以为共享库生成SO-NAME的链接,保证同样的库的SO-NAME链接指向最新的版本