链接和运行文件时,总会遇到cant find xxxx.so的错误。我们需要将共享库所在目录加入到系统的扫面目录。

1、将共享库复制到系统默认目录

系统默认扫描目录为/lib、/usr/lib、/usr/local/lib,这三个目录加入效果都一样,只是因为规范问题所以有多个目录。将xxxx.so文件复制到上述目录,在链接时系统就会自动进行寻找。

但是运行时,仍会出现找不到包的问题,这是因为二进制文件运行时,为了加快运行速度,会直接读取ld.so.cache这个缓存文件。执行ldconfig命令,将文件加入缓存。

2、修改/etc/ld.so.conf文件

将共享库所在目录,加入ld.so.conf文件,这样系统就会自动扫描目录。这种方法同样需要执行ldconfig。

3、修改环境变量

修改LD_LIBRARY_PATH环境变量

export LD_LIBRARY_PATH=/home/yourid/soDir:$LD_LIBRARY_PATH

有时修改不起作用,这是我们去修改LIBRARY_PATH这个变量

export LIBRARY_PATH=/home/yourid/soDir:$LIBRARY_PATH

修改环境变量的方法一般用于程序调试,并不建议用于平时使用

Logo

更多推荐