编译完一个boost.asio程序之后发现,出现错误
error while loading shared libraries: libboost_system.so.1.65.1: cannot open shared object file: No such file or directory
奇了怪了我明明在makefile里面都链接库了,而且也给出了boost库的地址,为什么就运行的时候出现这种问题呢。查了一下资料,发现是系统里面找不到这个库的位置。大部分的解决方式不是添加路径就是对etc/ld.so.conf动手脚。我试了一下发现都不行。
最后找到了方法.....
打开etc/ld.so.conf 我发现里面就只有一句话
include /etc/ld.so.conf.d/*.conf
好奇怪啊,他们都让我直接把boost库的地址放进来,但是我放进来感觉不对劲,还是不行。
进入ld.so.conf.d里面看看这些.conf文件都什么牛鬼蛇神
结果他们里面也写的很简单 比如 i386-linux-gnu.conf
# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
原来这里面才是路径啊,那我就就地建一个boost_lib.conf文件好了。里面写上boost的路径
/home/song/lib/lib
保存之后记得让新的conf生效
到etc目录下 ldconfig一下,之后就解决了。