Linux 下 安装 libevent,运行sample出错

本文介绍了解决在编译和运行C程序时遇到的libevent动态链接错误的方法。通过在/etc/ld.so.conf中添加libevent库的路径,并使用sudo权限执行ldconfig命令来更新链接器缓存,最终解决了找不到libevent-2.0.so.5的问题。

首先运行编译 sample 中的 hello.c,命令如下: -levent 表示 动态链接库

 

生成 hello 可执行文件,运行 ./hello ,出现如下错误:

./hello: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

原因是:系统不知道 libevent-2.0.so. 放在哪个目录下,这个时候就要在  /etc/ld.so.conf  中加入  libevent-2.0.so 所在的目录。

首先,先找到  /etc/ld.so.conf

然后 将路径添加进去:

最后,更新配置,输入 ldconfig。

此时会出现  “/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied” 权限受限,

改成  sudo ldconfig 即可。

Linux 系统下安装 libevent 时遇到的报错,通常与依赖库、编译器配置或环境变量有关。以下是几种常见错误及其解决方法: ### 1. **错误:openssl is a must but can not be found** 该错误表明系统在编译 libevent 时无法找到 OpenSSL 库。解决方法包括: - 安装 OpenSSL 开发包: ```bash sudo apt-get install libssl-dev ``` - 设置环境变量 `PKG_CONFIG_PATH` 指向 `openssl.pc` 文件所在目录: ```bash export PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig:$PKG_CONFIG_PATH ``` - 如果不需要 OpenSSL 支持,可以通过 `--disable-openssl` 禁用 OpenSSL 支持: ```bash ./configure --disable-openssl ``` ### 2. **错误:dereferencing pointer to incomplete type** 这种错误通常出现在使用较旧版本的 libevent 时,可能与 OpenSSL 的兼容性有关。解决方法包括: - 升级 OpenSSL 到兼容版本。 - 升级 libevent 到最新稳定版本,以确保与现代 OpenSSL 版本的兼容性。 ### 3. **通用编译问题** 确保系统已安装必要的编译工具链: ```bash sudo apt-get install build-essential ``` 此外,确保执行以下步骤: - 解压源码包并进入目录: ```bash tar -zxvf libevent-2.1.11-stable.tar.gz cd libevent-2.1.11-stable ``` - 配置安装路径: ```bash ./configure --prefix=/usr/local ``` - 编译并安装: ```bash make sudo make install ``` ### 4. **使用 yum 或 apt-get 安装 libevent** 如果手动编译过于复杂,可以通过包管理器安装 libevent: - 对于基于 Debian 的系统: ```bash sudo apt-get install libevent-dev ``` - 对于基于 Red Hat 的系统: ```bash sudo yum install libevent-devel ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值