Libevent2.1.8版在Liunx中编译安装遇到的问题
Libevent2.1.8版在Liunx中编译安装遇到的问题
前言:在网上找了很久,都没有一个明确的解决方法,通过分析可能的原因,将自己实际操作及解决的成功结果记录如下,以供遇到相似的问题,能提供思路!
1.安装编译Libevent的流程
## 第一步:生成configure配置文件
./autogen.sh
## 第二步:生成Makefile
./configure
## 第三步:安装编译
make
make install
2.make后出现如下报错信息

3.分析原因
分析一:可能是libevent_openssl.so的动态库没找到
于是安装openssl.so,使用的版本是1.1.1,最好对应libevent2.1.8,避免不必要的麻烦,当然熟悉了,随便用那个版本,只有能编译通过,正常使用就行。
安装openssl1.1.1的步骤:
.config shared --prefix=/usr/local/ --openssldir=/usr/local/openssl
说明:可以通过./Configure --help查看使用说明;如果libevent中要使用openssl模块,则先安装openssl。
指定动态库路径:
将openssl生成的动态库指定到/usr/local/lib目录下,重新编译libevent:
make clean
make
结果:还是出现上图所示的错误信息
分析二:没有找到openssl的头文件,所以无法使用动态库中的方法
从报错信息中看,是sample/le-proxy.c编译出的错,那我们找到sample目录下的include.am文件:

我们看OPENSSL_INCS对应的目录是啥,在libevent的安装目录下,打开Makefile查看:

没有加载,说明头文件是在当前目录下的头文件中,我们在libevent的include目录下查看:

发现没有openssl对应的头文件,所以才会找不到openssl动态库中的方法。
4.解决方法
将安装的openssl和解压的libevent下的include目录做个链接
ln -s /usr/local/include/openssl /root/libevent-master/include/openssl
然后在编译libevent:
make

make install

可发现,已经编译成功!
5.总结
像这种无定义的方法的引用,出现的问题只有两种情况:
- 找不到对应的库文件
- 找不到对应的头文件
所以需要自己进行指定头文件和库文件(动态库或静态库),麻烦的就是这点!
Libevent2.1.8版在Liunx中编译安装遇到的问题的更多相关文章
- 在CentOS 6.4中编译安装gcc 4.8.1
在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.c ...
- linux中编译安装Apache、PHP、MySQL(上)
1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apach ...
- 在 CentOS 中编译安装 VIM 7.3
转载:http://blog.csdn.net/zhanglyung/article/details/6204574 默认安装的 Vim 不带有多字符支持,所以不支持中文.无论是将 CentOS 本来 ...
- PHP在ubuntu中编译安装
关于怎么获取php源码和解压就不再说了. 编译的参数为: ./configure --prefix=/opt/php --with-bz2 --with-mcrypt --with-mhash --w ...
- 在CentOS中编译安装VIM 7.3
默认安装的 Vim 不带有多字符支持,所以不支持中文.无论是将 CentOS 本来的语系改为中文还是将 Vim 的语系设置改为中文,都不能正常显示中文.为了在 Vim 中能够正常处理中文,我们需要在编 ...
- mac air中编译安装swoole
本机php版本, 我的7.3.0 1 下载swoole源码 https://github.com/swoole/swoole-src/releases 我下载的版本是swoole-src-4.3.3. ...
- 在centos6中编译安装httpd-2.4/搭建LAMP
首先确保centos6安装平台安装一下环境: #yum groupinstall "Development Tools" "Server Platform Develo ...
- CentOS7中编译安装redis5.0
1. 环境介绍 CentOS7 (未安装Development Tools) 2. 下载Redis5.0-rc3 wget -O redis-5.0-rc3.tar.gz https://github ...
- Linux中编译安装软件的基本流程
1. 准备软件包源文件 从互联网下载相应的软件包(以 .tar.gz 或 .tar.bz2 为后缀),将tarball文件解压到/usr/local/src目录下,并切换到软件包目录下 : 2. ./ ...
随机推荐
- Windows 电脑的四种运行状态工作状态 (Working), S0 睡眠状态 (Sleep), S1 或 S3 休眠状态 (Hibernate), S4 关机状态 (Shutdown), S5
== Windows 电脑的四种运行状态 == 这四种运行状态(或称电源状态)是: 工作状态 (Working), S0 睡眠状态 (Sleep), S1 或 S3 休眠状态 (Hibernate), ...
- Linux 部署 iSCSI 客户端配置(Linux)
Linux 部署 iSCSI 客户端配置(Linux) 客户端环境 Client :RHEL8 IP : 192.168.121.11 一.测试与服务端的连通性 [root@Client-linux ...
- Linux ll查看文件属性详解-软硬链接详解
Linux文件属性及类型 [root@localhost ~]# ll anaconda-ks.cfg 文件类型 权限 硬连接数 文件的大小 文件的创建,修改时间 - rw-------. 1 roo ...
- Java 四种内置线程池
引言 我们之前使用线程的时候都是使用 new Thread 来进行线程的创建,但是这样会有一些问题 每次 new Thread 新建对象性能差 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可 ...
- 6.6 rsync:文件同步工具
rsync 是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据镜像同步备份的优秀工具.rsync适用于Unix/Linux/Windows等多种操作系统平台. rsync命令有三种常 ...
- SPI认识
SPI分为好几种模式 不同模式下 读取数据时 SCK线的状态不一样 STM32硬件SPI 有16BIT 8BIT的两种模式 既 收发都是8或16bit SPI缺少响应反馈机制 无法知道 ...
- 在fragment的onViewCreated里observe livedata的变化的原因
Fragment.onViewCreated()是在Fragment.onCreateView()函数之后调用的,调用到它时 表明fragment视图层级结构已创建完毕.在onViewCreated( ...
- MinkowskiEngine语义分割
MinkowskiEngine语义分割 要运行示例,请安装Open3D与PIP安装open3d-python. cd /path/to/MinkowskiEngine python -m exampl ...
- 基于ARM Cortex-M的SoC存储体系结构和实战
基于ARM Cortex-M的SoC存储体系结构和实战 System on Chip Architecture Tutorial Memory Architecture for ARM Cortex- ...
- 【题解】【洛谷 P1967】 货车运输
目录 洛谷 P1967 货车运输 原题 题解 思路 代码 洛谷 P1967 货车运输 原题 题面请查看洛谷 P1967 货车运输. 题解 思路 根据题面,假设我们有一个普通的图: 作图工具:Graph ...