默认的linux共享库搜索路径为/lib和/usr/lib目录,若共享库不在这两个路径,进程运行时不能自动链接(比如安装程序后共享库在/usr/local/bin),此时一般有下面4种方法解决: 1.链接时使用静态库,编译脚本或者命令中指明.a文件的完整路径; 2.修改LD_LIBRARY_PATH环境变量; 3.库文件直接复制到可搜错的路径cp -f xxx/*.so xxx; 4.添加搜错路径,使用ldconfig。 个人认为使用第四种方法比较好,步骤如下: 1.根据提示获得找不到路径的共享库的安装路径,使用locate命令,先用updatedb更新locate的索引库“/var/lib/mlocate/mlocate.db”,然后locate xxx.so查找,比如自动编译安装的库文件放在/usr/local/lib; 2.修改/etc/ld.so.conf,在文本结尾添加路径即可,比如加一行/usr/local/lib。 3.使用ldconfig更新记录系统中so文件的缓存文件“/etc/ld.so.cache”。 |
|