linux编译成功了,执行的时候收到类似这样的提示
./a.out: error while loading shared libraries: libosip2.so.12: cannot open shared object file: No such file or directory
说明这个库系统找不到了
第一步:找到这个库在哪
一般自己装的库有可能在/usr/local/lib目录下,先到这个目录下面找找看有没有上面提到的库,如果有的话,下一步,没有的话,使用find命令查找,这里以寻找 libosip2.so.12为例:sudo find / -name libosip2.so.12
加sudo是为了避免权限不够,格式这样的:sudo find 要查找的目录 -name 要查找的文件名字,示例:
[han@localhost /]$ sudo find / -name libosip2.so.12
find: ‘/run/user/1000/gvfs’: 权限不够
/usr/local/lib/libosip2.so.12 -------------------------->>就是这个路径
/home/han/下载/libosip2-5.1.0/src/osip2/.libs/libosip2.so.12
第二步:添加路径到系统中
3种方法:
1 . 用ln将需要的so文件链接到/usr/lib或者/lib这两个默认的目录下边
ln -s /usr/local/lib/*.so /usr/lib
sudo ldconfig
2.修改LD_LIBRARY_PATH
修改~/.bashrc或 ~/.bash_profile或系统级别的/etc/profile,
添加:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
执行sudo ldconfig
3.修改/etc/ld.so.conf
sudo vim /etc/ld.so.conf
在文件末尾添加 /usr/local/lib
sudo ldconfig
参考:
https://blog.csdn.net/wangeen/article/details/8159500
https://www.cnblogs.com/binchen-china/p/5665795.html
find的用法:https://www.cnblogs.com/jiftle/p/9707518.html