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
即可


你可能感兴趣的:(Linux)