红毛系统运行程序找不到共享库问题

红毛系统运行程序找不到共享库问题

问题出现

在centos上执行一个使用protobuf的程序时,提示了如下错误
在这里插入图片描述

问题原因

第一个原因是没有主机上没有安装该共享库,导致连接失败

第二种原因是已经安装了该共享库,但是程序执行调用该共性库时,程序按照默认路径找不到该共享库,因为很多共享的开源库安装的默认安装的路径时/usr/local/lib,而红帽系统一般只会默认在/lib、/use/lib和动态库配置文件中寻找共享库,因此就会出现找不到的问题

解决办法

1、直接将共享的开源库安装到/lib或者/usr/lib目录中,然后执行一下ldconfig命令

2、如果和共享库安装在了其他非默认路径下,例如/usr/local/lib下,需要在配置文件中将该目录写入

# vim /ect/ld.so.conf

在配置文件中加上共享库的目录(如图中的/usr/local/lib)然后执行ldconfig

在这里插入图片描述
loconfig的作用

主要是在默认的搜索目录(/lib和/usr/lib)以及动态库的配置文件/ect/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(lib*.so.*),进而创建出动态装入程序(ld.so)所需要的链接和缓存文件,缓存文件默认/etc/ld.so.cache,此文件中保存已排序好的动态链接库名列表

通常当用户安装了一个新的动态共享库时,就需要手动调用ldconfig命令,确保系统将新安装的动态库添加到动态库配置文件中

发布了9 篇原创文章 · 获赞 3 · 访问量 208

猜你喜欢

转载自blog.csdn.net/weixin_43604792/article/details/103828245
今日推荐