之前的文章讲了遇到cannot find lxxx报错的解决方案,今天系统的说下动态库搜索路径机制。
动态库搜索分为两个时期:编译期和运行期。
一、编译期
1、通过-L命令指定。比如-L ./指定在当前目录下搜索动态库文件
2、在LIBRARY_PATH变量中指定
3、系统固定搜索目录:/lib、/usr/lib
二、运行期
1、编译时通过-Wl,-rpath指定
2、在LD_LIBRARY_PATH变量中指定
3、在/etc/ld.so.conf或者/etc/ld.so.conf.d/xxx.conf文件中指定
4、系统固定搜索目录:/lib、/usr/lib