linux 共享库搜索路径

linux 中, 在执行一个可执行文件时,搜索动态库路径一共有 5 种,有优先级,会从上到下依次进行搜索。当执行一个程序上发现报错 No such file or directory 可以由此顺序来查错。

  • 在 ELF 文件的动态段 DT_RPATH 所指定的路径,可以在编译本文件时通过 “-Wl,rpath” 来指定
    1
    gcc -Wl,-rpath,/usr/local/lib,-rpath,/home/zzz/opensource/lib test.c
  • 环境变量 LD_LIBRARY_PATH
  • /etc/ld.so.cache 中缓存的路径,可以通过修改配置文件 / etc/ld.so.conf 并执行 ldconf 命令来修改
  • 默认路径 /lib
  • 默认路径 /usr/lib

Proudly powered by Hexo and Theme by Hacker
© 2020 wastecat