编译安装zabbix3.4.4执行make报致命错误:event.h没有这个文件解决+分析方法

如有错误直接指正,多谢!

1、编译过程

#./configure --prefix=/usr/local/zabbix-3.4.4/ --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libevent=/usr/local/libevent

执行完成未提示错误,

官方中文安装指南:

https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements

2、安装背景

1)操作系统centos7.0软件版本zabbix3.4.4,编译过程提示需要libevent

2)源代码安装libevent

#tar -xvzf  libevent-2.1.8-stable.tar.gz

#cd libevent-2.1.8/

#./configure –-prefix=/usr/local/libevent

#make &&  make install

3、致命错误

执行make  &&  make install报致命错误,如下图

25e6a77bdf0d1ba503fc23c7a4ad113b.png-wh_

(扩展内容:

先运行configure脚本生成Makefile编译配置文件然后执行make命令,make会自动读取上一步生成的Makefile编译链接源代码最后执行make install命令,make还是去读取Makefile,提取里面的install参数的定义,复制编译链接好的二进制文件到Makefile定义的位置并更改必须的权限.

4、做软连接

libevent头文件软连接到系统默认目录中,

ln -s /usr/local/libevent/include/event.h/usr/include/

ln –s /usr/local/libevent/include/event2//usr/include/event2

(根据此文进行分析扩展http://blog.csdn.net/z3410218746/article/details/7462020

5、结束语

小编我浪费1天的时间总结问题所在之处,根据小编我有点C语言的基础分析如下:

第一步:先找到报错的信息点,即是致命错误:event.h:没有那个文件或目录分析上下错误信息源,查找common.h文件路径,并且查看23行,

#find / -name  common.h

发现在zabbix3.4.4安装目录下面# /tools/zabbix-3.4.3/include/common.h

a604c8d6dc564444049ff55d4bdbb9ec.png-wh_

发现确实是下面致命错误的信息,

第二步:继续查找上一步23行的文件,也就是致命错误的信息

同样查找sysinc.h文件路径,并且查看425行,

# find / -name sysinc.h

同样发现在zabbix3.4.4安装目录下面#/tools/zabbix-3.4.4/include/sysinc.h

cc4900679ae82891190c2b293afeab3a.png-wh_

第三步:发现425行是c语言的报头信息,此事小编就想是不是执行make安装过程中找不到报头信息所在的位置,于是继续查找event.h路径,

# find / -name event.h

# /usr/local/libevent/include/event.h

#/usr/local/libevent/include/event2/event.h

发现都在libevent目录下,于是就想通了,系统执行make安装找的报头文件都是在/usr/include下面,而致命错误信息提示的event.h报头不在系统默认的路径下

第四步:于是做软连接,就解决问题了,希望此次分析能够帮助到大家。