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 软链接,注意检查名称,别已经有了 防止覆盖;