vps交流

我linux调用so文件,提示找不到,但是这样就可以,为什么?


我调用 1.so   他依赖2.so ,在同一个文件,调用时候提示依赖错误,用ldd  1.so ,提示找不到2.so,
百度查了半天,说放在/usr/lib64 里面就可以?我测试了下可以了。请问为什么。
自动链接了啊
ldconfig
因为/usr/lib64是默认的链接目录
而当前目录并不是默认的链接目录我linux调用so文件,提示找不到,但是这样就可以,为什么?这点是为了安全性考虑的

konololi 发表于 2022-2-4 17:02
因为/usr/lib64是默认的链接目录
而当前目录并不是默认的链接目录这点是为了安全性考虑的 …

我程序调用本目录的东西还不行么?好奇怪。除了放这里,还有什么办法解决的么。

斌斌 发表于 2022-2-4 17:31
我程序调用本目录的东西还不行么?好奇怪。除了放这里,还有什么办法解决的么。 …

不行,就像本目录也不在PATH里面。

解决方法的话,
1.编译链接生成程序的时候可以指定链接路径
2.可以修改环境变量LD_LIBRARY_PATH ,把 本目录放进去