Linux环境下,安装libevent库

前言

最近在进行网络编程的学习,在安装libevent库时,遇到了各种各样的问题。最后通过一条条的去搜索问题关键字,费尽千辛万苦,终于完成了安装,也能够成功的运行起来其中所提供的案例代码。所以在这里将各种零碎的问题以及解决方案整理一下,帮助大家顺心地完成安装。

安装过程

(1)libevent.tar.gz压缩包下载

 进入网站:libevent.org ,点击任意一个版本即可完成压缩包的下载。

(2)将libevent.tar.gz压缩包共享到虚拟机上

如果是ubuntu系统,通过共享文件夹可以完成压缩包传输;

如果是centos系统,通过Xftp 7应用程序可以完成压缩包传输。Xftp 7具体的安装以及使用,可以参考Linux_远程文件传输

(3)解压缩

可以将该压缩包放到用户家目录下, 使用指令tar zxvf libevent.tar.gz,进行解压缩。这里压缩包的名称只是举例,实际它还会带上版本号等。解压后,进入解压好的文件目录,开始安装。

(4)开始安装以及安装中的问题

<1>检查环境,生成makefile

运行指令: ./configure ;

遇到问题:提示 “ openssl is a must but can not be found ”;

解决方法:安装openssl;

ubuntu:运行指令  sudo apt install libssl-dev

centos:运行指令  yum install openssl openssl-devel

<2>执行makefile

运行指令:make

<3>编译链接示例代码

运行指令:cd sample   =>   gcc hello-world.c -o hello

遇到问题1:提示 “ 致命错误:event2/bufferevent.h:没有那个文件或目录"

解决方法:原因是缺少相应的动态库头文件路径,可以通过添加选项 -大写i + 指定头文件路径来解决,即:gcc hello-world.c -o hello -I ../include/ (单次有效);也可以通过创建软连接的方式来解决,将动态库头文件路径 添加到/usr/include目录下:ln -s  头文件绝对路径  /usr/include/event2 (一直有效)。

(动态库头文件在它自己的/include目录下)   (绝对路径可以通过指令:locate event2 得到)


运行指令:gcc hello-world.c -o hello -I ../include/

遇到问题2:提示 " 对...未定义的引用 "

解决方法:原因是未指定动态库名,除去前缀lib和后缀.so,剩下部分就是动态库名。可以通过添加选项 -小写L + 动态库名来解决,即:gcc hello-world.c -o hello -levent -I ../include/。(注意前面的l是小写L,后面的I是大写i)


运行指令:gcc hello-world.c -o hello -levent -I ../include/

遇到问题3:提示 " /usr/bin/ld:can not find -levent "

解决方法:原因是编译过程未找到对应库文件,即在/usr/lib目录下,没有libevent.so动态库文件。可以通过创建软连接的方式来解决,即:ln -s  库文件绝对路径  /usr/lib/libevent.so

(绝对路径获取:locate libevent.so ,绝对路径的形式:/home/user/.../.libs/libevent.so)

<4>执行所生成的可执行文件

运行指令:./hello

遇到问题:提示 " cannot open shared object file "

解决方法:这里涉及 链接器和动态链接器 的内容,需要知道的就是:对于动态库,在运行时还需再要给动态链接器提供 所用动态库的目录位置。为此我们需要添加动态库路径的环境变量,执行指令:vi ~/.bashrc 进入当前用户的配置文件;在配置文件中加入指令:export LD_LIBRARY_PATH=/home/user/.../.libs 。需要注意的是:首先等号两边不要加空格,其次等号右边的 绝对路径到达libevent.so所在目录即可。配置完环境变量后,还需要通过指令:. .bashrc 让这个脚本文件生效,或者重启也ok。

 最后到这里,就顺利的完成安装,并且可以正常使用啦。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux安装libevent可以按照以下步骤进行操作: 1. 首先,通过libevent的官网(https://libevent.org/)下载libevent的版本。 2. 下载完成后,解压缩下载的文件。 3. 打开终端,进入解压后的libevent目录。 4. 在终端中运行以下命令,开始编译和安装libevent: ``` ./configure make sudo make install ``` 这些命令将会配置、编译和安装libevent。 5. 安装完成后,可以通过运行以下命令检查libevent是否成功安装: ``` ldconfig -v | grep libevent ``` 如果输出结果中包含libevent.so动态文件的路径,表示安装成功。 以上步骤可以确保在Linux系统中成功安装libevent。如果在编译过程中出现找不到文件的错误,可以尝试以下解决方法: 1. 检查是否已经在/usr/lib目录下找到了libevent.so动态文件。如果没有找到,可以通过创建软连接的方式解决。在终端中运行以下命令: ``` ln -s 文件绝对路径 /usr/lib/libevent.so ``` 这将会创建一个软连接,将文件链接到/usr/lib目录中。 通过以上步骤,您应该能够成功在Linux安装libevent,并解决相关的错误。希望对您有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【LinuxLinux系统下libevent安装](https://blog.csdn.net/qq_43411563/article/details/107413703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Linux环境下,安装libevent](https://blog.csdn.net/xyz_unknown/article/details/128130408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Linux下编译安装php libevent扩展实例](https://download.csdn.net/download/weixin_38692666/12807205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值