Linux动态库搜索路径


动态库的搜索顺序

Linux系统下

  • LD_PRELOAD环境变量指定库路径
  • -rpath链接时指定路径
  • LD_LIBRARY_PATH环境变量设置路径
  • /etc/ld.so.conf配置文件指定路径
  • 默认共享库路径,/usr/lib,lib

LD_DEBUG这个环境通常用来调试。

例如,查看整个装载过程:

1
$ LD_DEBUG=files ./main

或者查看依赖的库的查找过程:

1
2
3
4
$ LD_DEBUG=libs ./main
3557: find library=libtest.so [0]; searching
3557: search cache=/etc/ld.so.cache
3557: trying file=/usr/local/lib/libtest.so

另外还可以显示符号的查找过程:

1
$ LD_DEBUG=symbols ./main

文章作者: lingxiao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 lingxiao !
  目录