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中编译安装遇到的问题的更多相关文章

  1. 在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 ...

  2. linux中编译安装Apache、PHP、MySQL(上)

    1.简介 在阿里云买了个云服务器,一直没时间折腾.过了近十天了吧,才有时间好好玩玩这个云服务器.自己是做Web开发的,所以我需要的开发环境是LAMP.之前打算是采用yum安装,不过yum安装apach ...

  3. 在 CentOS 中编译安装 VIM 7.3

    转载:http://blog.csdn.net/zhanglyung/article/details/6204574 默认安装的 Vim 不带有多字符支持,所以不支持中文.无论是将 CentOS 本来 ...

  4. PHP在ubuntu中编译安装

    关于怎么获取php源码和解压就不再说了. 编译的参数为: ./configure --prefix=/opt/php --with-bz2 --with-mcrypt --with-mhash --w ...

  5. 在CentOS中编译安装VIM 7.3

    默认安装的 Vim 不带有多字符支持,所以不支持中文.无论是将 CentOS 本来的语系改为中文还是将 Vim 的语系设置改为中文,都不能正常显示中文.为了在 Vim 中能够正常处理中文,我们需要在编 ...

  6. mac air中编译安装swoole

    本机php版本, 我的7.3.0 1 下载swoole源码 https://github.com/swoole/swoole-src/releases 我下载的版本是swoole-src-4.3.3. ...

  7. 在centos6中编译安装httpd-2.4/搭建LAMP

    首先确保centos6安装平台安装一下环境: #yum groupinstall "Development  Tools" "Server Platform Develo ...

  8. CentOS7中编译安装redis5.0

    1. 环境介绍 CentOS7 (未安装Development Tools) 2. 下载Redis5.0-rc3 wget -O redis-5.0-rc3.tar.gz https://github ...

  9. Linux中编译安装软件的基本流程

    1. 准备软件包源文件 从互联网下载相应的软件包(以 .tar.gz 或 .tar.bz2 为后缀),将tarball文件解压到/usr/local/src目录下,并切换到软件包目录下 : 2. ./ ...

随机推荐

  1. 二进制部署K8S-1基本概念

    二进制部署K8S-1基本概念 感谢老男孩教育王导的公开视频,文档整理自https://www.yuque.com/duduniao/k8s. 1.实验环境 1.1 虚拟机 因为在后期运行容器需要有大量 ...

  2. Zabbix 监控过程详解

    Zabbix 监控过程详解 一.修改密码及中文语言 修改密码 修改中文语言 如果复选框中没有 Chinese(zh_CN) 选项,需要安装中文包 [root@Zabbix-server ~]# yum ...

  3. redis 处理缓存穿透

    1. 缓存穿透简述 举例说明,redis中确实没有key值为"redis"数据,并且数据库里面也没有,那么每一次都会穿过缓存层,会将请求打到数据库查询,然后数据库进行查询,造成了不 ...

  4. Windows 10, version 21H1 ARM64

    请访问原文链接:https://sysin.org/article/windows-10-arm/,查看最新版.原创作品,转载请保留出处. Windows 10, version 21H1 (rele ...

  5. HashMap源码:聊聊Map的遍历性能问题(一)

    目录 引言 迭代器测试 迭代器源码探究 其他遍历方法 增强型for循环 Map.forEach Stream.forEach 总结 附:四种遍历源码 附:完整测试类与测试结果+一个奇怪的问题 引言 今 ...

  6. THINKPHP_(7)_THINKPHP6的controller模型接收前端页面通过ajax返回的数据,会因为一个div而失败

    这个随笔比较短. 同样的前端页面代码,修改了一下,后端模型接收不到数据. 利用beyond compare软件比对两个前端文件, 发现多了一个</div>标签. 多了一个</div& ...

  7. TVM 高效保护隐私 ML

    TVM 高效保护隐私 ML 这篇文章描述了Myelin,一个在值得信赖的硬件飞地中保护隐私的机器学习框架,以及TVM如何使Myelin快速.关键的想法是,TVM,不像其它流行的ML框架,将模型编译成轻 ...

  8. 3D点云点云分割、目标检测、分类

    3D点云点云分割.目标检测.分类 原标题Deep Learning for 3D Point Clouds: A Survey 作者Yulan Guo, Hanyun Wang, Qingyong H ...

  9. Github_远程仓库多人协作操作,解决冲突

    前提:假设原已有一个代码仓库,加入协作者,大家一起完成一个项目. 一.添加伙伴-->伙伴同意加入-->伙伴clone,提交代码 1.创建者进入仓库主页 ==> Settings页面 ...

  10. java.lang.ClassNotFoundException: org.apache.curator.RetryPolicy

    dubbo项目启动过程中遇到这个异常,很明显是找不到curator的包,所以需要引入curator的相关包才可以, curator是zookeeper的客户端框架,且要引入完整,才不会报错 比如: & ...