动态库的搜索顺序
Linux系统下
- LD_PRELOAD环境变量指定库路径
- -rpath链接时指定路径
- LD_LIBRARY_PATH环境变量设置路径
- /etc/ld.so.conf配置文件指定路径
- 默认共享库路径,/usr/lib,lib
LD_DEBUG这个环境通常用来调试。
例如,查看整个装载过程:
1 | $ LD_DEBUG=files ./main |
或者查看依赖的库的查找过程:
1 | LD_DEBUG=libs ./main |
另外还可以显示符号的查找过程:
1 | $ LD_DEBUG=symbols ./main |