ldd main | grep not
由0.1 动态库的工作原理可知,只要把动态库libcalc.so的绝对路径添加到动态载入器ld-linux.so的搜索路径中,那么动态载入器就可以获取到动态库libcalc.so的绝对路径,接着就可以找到动态库文件libcalc.so,将动态库文件载入内存,然后就可以使用动态库里面的代码,最终可执行程序main就可以成功运行,不会报错。
还是由0.1 动态库的工作原理可知,动态载入器搜索动态库绝对路径的搜索顺序为:DT_RPATH段→环境变量LD_LIBRARY_PATH→/etc/ld.so.cache文件列表→/lib/或/usr/lib目录
因此,添加动态库绝对路径的方法也有很多种
接下来,我们就按照上述分析进行操作.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/veroll/Linux/lesson1.6/library/lib
echo $LD_LIBRARY_PATH
#动态链接库:
1
#.bashrc +
#sudo vim /etc/profile
export LD_LIBRARY_PATH+="/usr/local/lib"
# 查看
echo $LD_LIBRARY_PATH
ldd main | grep not
2
#or将动态库绝对路径添加至/etc/ld.so.cache文件列表中:
vim /etc/ld.so.conf
+:
/usr/local/lib
sudo ldconfig
3
将动态库添加至/lib/或/usr/lib目录 or 软链接,注意检查名称,别已经有了 防止覆盖;
- shared file libraries loading 动态shared file libraries loading shared file directory libraries shared libraries loading libxml2 shared permission libraries loading shared libreadline libraries loading shared libraries loading libpcre glibcxx library unable shared jenkins library share shared libraries libcrypto bcftools libjemalloc libraries loading cannot