lib in Linux
/lib
是内核级的,/usr/lib
是系统级的,/usr/local/lib
是用户级的- 通常
gcc
中链接的时候,如-lz -lm
都会寻找/lib
和/usr/lib
,还会搜索-L/...
以及LIBRARY_PATH
变量的目录, - linux可执行文件运行时,如果包含共享库,会先后搜索:文件的
DT_RPATH
段 -> 环境变量LD_LIBRARY_PATH
->/etc/ld.so.cache
文件列表 ->/lib
和/usr/lib
目录找到库并装入内存 - 可通过将其他目录加入
/etc/ld.so.cache
,方法:/etc/ld.so.conf
文件内容为include /etc/ld.so.conf.d/*.conf
- 只需在
/etc/ld.so.conf.d/
添加自定义conf
文件即可 - 运行
ldconfig
重建/etc/ld.so.cache