安装了 libevent,程序运行时出现了错误提示:
error while loading shared libraries: libevent-2.0.so.5
问题很明显,系统没能找到 libevent 的动态链接库文件
原因在于 libevent 没有安装在系统存放动态链接库的目录中,当然,也就有两种方式可以解决,一种是通过查找相应的目录和对应的环境变量,将目录加入系统环境变量中即可
问题定位和解决
定位问题
通过执行 ldd 命令可以看到程序究竟调用了哪些动态链接库,哪些无法找到
ldd main
可见只有 libevent-2.0.so.5 没有找到
定位 libevent-2.0.so.5
whereis libevent-2.0.so.5
他在 /usr/local/lib 目录下
定位系统目录
定位系统动态链接库的目录一个方法是通过环境变量来查找,然而,更简单的方法是直接看我们的程序到哪个目录去找他了
LD_DEBUG=libs ./main -v
从输出中我们可以看到路径 /usr/lib
因此,我们进入这个目录执行: sudo ln -s /usr/local/lib/libevent-2.0.so.5 .