让程序在指定路径寻找库文件 + 库文件搜索顺序
- 安装到系统对应目录:/usr/lib /usr/local/lib,可以使用ldconfig配置,需要root权限
- LD_LIBRARY_PATH
- rpath 在g++中添加-Wl,--rpath -Wl,/a/b/c,即可传给ld阶段,如果用autoconf,libtool只会自动添加一个路径(库文件生成路径),可按上述方式添加额外路径.
- 该方法需要库文件在固定位置,灵活性不好
- RUNPATH
GNU加载器,库文件搜索顺序
- 如果没有run_path,首先看rpath
- LD_LIBRARY_PATH( setuid/setgid程序跳过该阶段)
- run_path( setuid/setgid程序跳过该阶段)
- /etc/ld/so/cache中查找(可以使用-z nodeflib连接选项取消)
- 默认目录/lib /usr/lib(可以使用-z nodeflib连接选项取消)
参考: http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html