对自己打包的so文件进行测试,编译不报错 但是运行时 出现错误:cannot open shared object file: No such file or directory
但是so文件明明已经放在当前目录下了
折腾一下午,发现这是linux下so库经常会出现的错误,测试程序的可执行文件名字为start, 用ldd start可以发现程序寻找每个so的路径基本为系统路径,lib或者usr/lib等。
而当前目录并不在查找范围内,因此显示无法找到
解决方法:
执行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
最后的 . 表示把当前目录加入到动态链接库查找的目录中去
重新运行 成功!
上述方法设置是临时的 另外一种方法:
sudo vim /etc/ld.so.conf
添加库路径 如 ./ (表示当前目录)
添加保存后
sudo ldconfig
即可