linux gcc 编译的so文件 运行时无法找到 错误:cannot open shared object file: No such file or directory

对自己打包的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

即可
————————————————
版权声明:本文为CSDN博主「lucas-nlp」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31747765/article/details/81839529

posted @ 2019-10-17 10:57  aij  阅读(436)  评论(0编辑  收藏  举报