0%

The lib in Linux

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