安装源码包inotify启动失败 error while loading shared libraries: libinotifytools.so.0: cannot open shared object fil

今天安装源码包inotify 一切安装妥当之后启动失败,报如下错误:

第一感觉是找不到这个库,此时有两种可能

1,操作系统上没有安装该库

2,操作系统找不到该库

首先在/usr路径下查找该包的名称,如下图

ps:为什么要在/usr下找呢,因为库文件一般都安装在该目录下。

结果只在源码包的安装路径下找到了该库,证明以源码包形式安装该软件的时候该库已经被安装在操作系统中了。

这就验证了上边的第2项,操作系统找不到该库的路径。

此时我们应该想怎么让操作系统找到该库

在这之前呢我们要先知道一点,程序里面引用库分为动态链接库和静态链接库,简单的理解静态链接库就是程序要用的一些类库直接写到了该程序里面,而使用动态链接库的程序就时程序只是在声明部分写入要引用该库,而不必把要引用的类库都加载到程序里面,这样的好处就是程序看起来更简洁,代码也少了很多,缺点就是需要操作系统需要其引用的类库。由此可以断定上面程序之所以报错是因为该程序引用的是动态链接库,但是操作系统里面没有这个库,源码包却自带的这个库,这时就要让操作系统知道这个库所在的路径就OK了。

找到原因之后下面是解决方法:

方法一:
echo "/usr/lib64/mysol" >> /etc/ld.so.conf
ldconfig

ld.so.conf动态链接库装载器,操作系统会根据这里面写的路径去找库。

ldconfig是告诉操作系统要引入新的变量了,需要重新识别一下。

方法二:

export LD_LIBRARY_PATH=/usr/local/inotify/lib:$LD_LIBRARY_PATH

/usr/local/inotify/lib为该源码包要用的库的路径,引入该环境变量的时候操作系统就会去找该变量下的类库。
————————————————
版权声明:本文为CSDN博主「JNeuman」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangxin6722513/article/details/44218893

原文地址:https://www.cnblogs.com/zyh9900010/p/11555945.html

时间: 2024-10-12 21:33:45

安装源码包inotify启动失败 error while loading shared libraries: libinotifytools.so.0: cannot open shared object fil的相关文章

yum更换源,安装源码包

更换yum源下载base文件 wget命令没有使用curl 下载文件centos base 163.repo安装扩展源安装包epel配置文件下会多两个epel开头的文件yum list|grep epel 查看会多包使用yum 下载rpm包yum install zsh --downloadonly 仅仅下载不安装查看下载包位置指定下载目录重新安装源码安装下载源码包安装源码包可以用./configure --help 查看帮助判断上条命令是否执行正确 0是完成 1是没有完成make 编译文件ma

centos安装源码包 示例安装apache

在Linux下安装源码包时最常用的,需要我们把源代码编译成可执行的二进制文件.Linux上的C语言编译器称为gcc,利用它可以把C语言编译成可执行的二进制文件. 如果没有安装gcc,就无法编译源码,你可以使用命令yum install -y gcc来完成安装. 安装源码包的3个步骤: 1)./configure 这一步可以定制功能,加上相应的选项,具体可以有什么选择可以通过命令./configure --help来查看.这一步会自动检测你的Linux系统与相关的套件是否有编译该源码包时所需的库,

error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file

安装rac10g,出现如下错误: [[email protected] oracle]# /u01/product/crs/root.sh WARNING: directory '/u01/product' is not owned by root Checking to see if Oracle CRS stack is already configured /etc/oracle does not exist. Creating it now. Setting the permission

动态链接库找不到 : error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory

问题: 运行gsl(GNU scientific Library)的函数库,用 gcc erf.c -I/usr/local/include -L/usr/local/lib64 -L/usr/local/lib -g -Wall --std=gnu99 -lgsl -lgslcblas -o m.o 编译,之后运行./m.o 提示error while loading shared libraries: libgsl.so.0: cannot open shared object file:

第12章 安装RPM包或者安装源码包

1. 区分 rpm -qi -qf  -ql  -qa四个不同选项组合的作用?rpm -qi   //查询已经安装的某个RPM软件包的信息rpm -qf   //查询某个程序文件是由哪个RPM软件包安装的rpm -ql   //查询某个RPM软件包的所有安装文件rpm -qa   //查询所有已经安装的RPM软件包 2. rpm -qi 后面如果跟一个未安装的包名,会显示什么信息?  会提示该软件包没有安装 3. 请找出 vim 这个命令是由哪个rpm包安装来的?rpm -qf `which v

Apache源码包添加启动脚本到系统服务

手动编译apache源码包安装的话,apache是没有启动脚本的,也就是说用户不能通过简单的通过/etc/init.d/httpd(start|stop|restart)来启动/关闭/重新启动. 其实源码里已经有启动的脚本,我们要修改下即可,把Apache加入系统SysV服务中来. 在源码httpd-2.x.x/build/rpm中存在httpd.init    #httpd.ini就是apache启动脚本 拷贝命令如下: cp httpd.init /etc/init.d/httpd 编辑该h

linux安装源码包未解决

源码包安装约定:源码包放在 cd/use/local/src 我先把httpd源码包下载到cd/use/local/src 如下所示下载源码包 #cd/usr/local/src/[[email protected] src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz 下载源包 [[email protected] src]# wget http://mirrors.cnnic.cn/aparche/httpd-

RPM 包管理与 yum安装源码包

RPM工具 RPM 是 Red HatPackage Manager 的缩写,是由Redhat所开发一款包管理程序.目前Redhat系的Linux使用rpm可以完成软件的安装.查询.卸载.升级等工作. 需要注意的是,RPM包之间存在依赖性的问题:在安装一个包的过程中可能需要安装其它包,并且其它包又有所依赖的包.所以必须先安装好所有所依赖的包后才能安装自己想要安装的包. 获取程序包的途径:优先选择系统附带的光盘或到官方的服务器下载:项目的官方站点下载. 每个rpm包名称都由"-"和&qu

Linux编译安装源码包的流程

本文参考:http://www.linuxfromscratch.org/lfs/view/7.10-rc1/chapter05/generalinstructions.html 流程: 1.  下载并解压源码包2.  运行:configure3.  编译:make4.  安装:make install 编译时需要注意一个原则:不要在解压的包中直接执行./configure.make.make install等命令,需要在源码目录下另外新建一个目录,在新建的目录中执行以上命令. 例子:这里以源码