ubuntu18.04下libevent安装与配置

perl g++ make automake libtool的安装

apt-get install perl g++ make automake libtool

zlib的安装

下载zlib

wget http://www.zlib.net/zlib-1.2.13.tar.gz

解压

tar -zxvf zlib-1.2.13.tar.gz 

生成makefile

cd zlib-1.2.13
./configure

执行makefile

make

安装

make install

OpenSSL的安装

OpenSSL最好安装1.1.1版本

openssl version
OpenSSL 1.1.1  11 Sep 2018

我的是自带安装好的,,ubuntu18.04跟新会自动跟新OpenSSL为1.1.1版本

libevent的下载与安装

依次从GitHub和sourceforge上试一下,那个下载快用那个

wget https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
wget https://sourceforge.net/projects/libevent.mirror/files/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz

解压安装包

tar -zxvf libevent-2.1.12-stable.tar.gz 

生成配置项

cd libevent-2.1.12-stable/
./autogen.sh 

要开启ssl不仅要安装OpenSSL还要安装libssl-dev,否则会报错

sudo apt install libssl-dev

生成Makefile

./configure

出现以下信息说明生成成功

configure: creating ./config.status
config.status: creating libevent.pc
config.status: creating libevent_openssl.pc
config.status: creating libevent_pthreads.pc
config.status: creating libevent_core.pc
config.status: creating libevent_extra.pc
config.status: creating Makefile
config.status: creating config.h
config.status: creating evconfig-private.h
config.status: executing depfiles commands
config.status: executing libtool commands

开始编译

make

安装

make install

库文件安装到了/usr/local/lib
头文件安装到了/usr/local/include

ls /usr/local/lib
ls /usr/local/include

运行一个测试

./test/regress

可以看到绝大部分模块成功了

main/methods: [forking] OK
main/version: OK
main/base_features: [forking] OK
main/base_environ: [forking] OK
main/event_base_new: [forking] OK
main/free_active_base: [forking] OK
main/manipulate_active_events: [forking] OK
main/event_new_selfarg: [forking] OK
main/event_assign_selfarg: [forking] OK
main/event_base_get_num_events: [forking] OK
main/event_base_get_max_events: [forking] OK
main/evmap_invalid_slots: [forking] OK
main/bad_assign: [forking] OK
main/bad_reentrant: [forking] OK
main/active_later: [forking] OK
main/event_remove_timeout: [forking] OK
main/persistent_timeout: [forking] OK
main/persistent_timeout_jump: [forking] OK
main/persistent_active_timeout: [forking] OK
main/priorities: [forking] OK
main/priority_active_inversion: [forking] OK
main/common_timeout: [forking] OK
main/simpleread: [forking] OK
main/simpleread_multiple: [forking] OK
main/simplewrite: [forking] OK
main/simpleclose_rw: [forking] OK
main/simpleclose_close: [forking] OK
main/simpleclose_shutdown: [forking] OK
main/simpleclose_close_persist: [forking] OK
main/simpleclose_shutdown_persist: [forking] OK
main/simpleclose_close_et: [forking] OK
main/simpleclose_shutdown_et: [forking] OK
main/simpleclose_close_persist_et: [forking] OK
main/simpleclose_shutdown_persist_et: [forking] OK
main/multiple: [forking] OK
main/persistent: [forking] OK
main/combined: [forking] OK
main/simpletimeout: [forking] OK
main/loopbreak: [forking] OK
main/loopexit: [forking] OK
main/loopexit_multiple: [forking] OK
main/nonpersist_readd: [forking] OK
main/multiple_events_for_same_fd: [forking] OK
main/want_only_once: [forking] OK
main/event_once: [forking] OK
main/event_once_never: [forking] OK
main/event_pending: [forking] OK
main/event_closed_fd_poll: [forking] SKIPPED
main/dup_fd: [forking] OK
main/mm_functions: [forking] OK
main/many_events: [forking] OK
main/many_events_slow_add: [forking] OK
main/struct_event_size: OK
main/get_assignment: [forking] OK
main/event_foreach: [forking] OK
main/gettimeofday_cached: [forking] OK
main/gettimeofday_cached_sleep: [forking] OK
main/gettimeofday_cached_reset: [forking] OK
main/gettimeofday_cached_disabled: [forking] OK
main/gettimeofday_cached_disabled_nosleep: [forking] OK
main/active_by_fd: [forking] OK
main/fork: [forking] OK
main/del_wait: [forking] OK
main/del_notify: [forking] OK
heap/randomized: OK
et/et: [forking] OK
et/et_mix_error: [forking] OK
et/et_multiple_events: [forking] OK
finalize/cb_invoked: [forking] OK
finalize/free_finalize: [forking] OK
finalize/within_cb: [forking] OK
finalize/debug_use_after_free: [forking] OK
evbuffer/evbuffer: OK
evbuffer/remove_buffer_with_empty: OK
evbuffer/remove_buffer_with_empty2: OK
evbuffer/remove_buffer_with_empty3: OK
evbuffer/remove_buffer_with_empty_front: OK
evbuffer/remove_buffer_adjust_last_with_datap_with_empty: OK
evbuffer/add_buffer_with_empty: OK
evbuffer/add_buffer_with_empty2: OK
evbuffer/reserve2: OK
evbuffer/reserve_many: OK
evbuffer/reserve_many2: OK
evbuffer/reserve_many3: OK
evbuffer/reserve_with_empty: OK
evbuffer/reserve_invalid_last_with_datap: [forking] OK
evbuffer/expand: OK
evbuffer/expand_overflow: OK
evbuffer/add1: OK
evbuffer/add2: OK
evbuffer/reference: OK
evbuffer/reference2: OK
evbuffer/iterative: OK
evbuffer/readln: OK
evbuffer/search_eol: OK
evbuffer/find: OK
evbuffer/ptr_set: OK
evbuffer/search: OK
evbuffer/callbacks: OK
evbuffer/add_reference: OK
evbuffer/multicast: OK
evbuffer/multicast_drain: OK
evbuffer/prepend: [forking] OK
evbuffer/empty_reference_prepend: [forking] OK
evbuffer/empty_reference_prepend_buffer: [forking] OK
evbuffer/peek: OK
evbuffer/peek_first_gt: OK
evbuffer/freeze_start: OK
evbuffer/freeze_end: OK
evbuffer/add_iovec: OK
evbuffer/copyout: OK
evbuffer/file_segment_add_cleanup_cb: OK
evbuffer/pullup_with_empty: OK
evbuffer/add_file_sendfile: [forking] OK
evbuffer/add_file_mmap: [forking] OK
evbuffer/add_file_linear: [forking] OK
evbuffer/add_file_nosegment: [forking] OK
evbuffer/add_big_file_sendfile: [forking] OK
evbuffer/add_big_file_mmap: [forking] OK
evbuffer/add_big_file_linear: [forking] OK
evbuffer/add_big_file_nosegment: [forking] OK
evbuffer/add_file_offset_sendfile: [forking] OK
evbuffer/add_file_offset_mmap: [forking] OK
evbuffer/add_file_offset_linear: [forking] OK
evbuffer/add_file_offset_nosegment: [forking] OK
evbuffer/add_file_offset2_sendfile: [forking] OK
evbuffer/add_file_offset2_mmap: [forking] OK
evbuffer/add_file_offset2_linear: [forking] OK
evbuffer/add_file_offset3_sendfile: [forking] OK
evbuffer/add_file_offset3_mmap: [forking] OK
evbuffer/add_file_offset3_linear: [forking] OK
signal/simplestsignal: [forking] OK
signal/simplesignal: [forking] OK
signal/multiplesignal: [forking] OK
signal/immediatesignal: [forking] OK
signal/signal_dealloc: [forking] OK
signal/signal_pipeloss: [forking] OK
signal/signal_switchbase: [forking] OK
signal/signal_restore: [forking] OK
signal/signal_assert: [forking] OK
signal/signal_while_processing: [forking] OK
util/ipv4_parse: OK
util/ipv6_parse: OK
util/ipv6_parse_scope: OK
util/sockaddr_port_parse: OK
util/sockaddr_port_format: OK
util/sockaddr_predicates: OK
util/evutil_snprintf: OK
util/evutil_strtoll: OK
util/evutil_casecmp: OK
util/evutil_rtrim: OK
util/strlcpy: OK
util/log: [forking] OK
util/upcast: OK
util/integers: OK
util/rand: [forking] OK
util/EVUTIL_IS_: OK
util/getaddrinfo: [forking] OK
util/getaddrinfo_live: DISABLED
util/getaddrinfo_AI_ADDRCONFIG: DISABLED
util/mm_malloc: OK
util/mm_calloc: OK
util/mm_strdup: OK
util/usleep: OK
util/monotonic_res: OK
util/monotonic_res_precise: DISABLED
util/monotonic_res_fallback: DISABLED
util/monotonic_prc: OK
util/monotonic_prc_precise: OK
util/monotonic_prc_fallback: OK
util/date_rfc1123: OK
util/evutil_v4addr_is_local: OK
util/evutil_v6addr_is_local: OK
bufferevent/bufferevent: [forking] OK
bufferevent/bufferevent_pair: [forking] OK
bufferevent/bufferevent_flush_normal: [forking] OK
bufferevent/bufferevent_flush_flush: [forking] OK
bufferevent/bufferevent_flush_finished: [forking] OK
bufferevent/bufferevent_pair_flush_normal: [forking] OK
bufferevent/bufferevent_pair_flush_flush: [forking] OK
bufferevent/bufferevent_pair_flush_finished: [forking] OK
bufferevent/bufferevent_pair_release_lock: [forking] OK
bufferevent/bufferevent_watermarks: [forking] OK
bufferevent/bufferevent_pair_watermarks: [forking] OK
bufferevent/bufferevent_filters: [forking] OK
bufferevent/bufferevent_pair_filters: [forking] OK
bufferevent/bufferevent_filters_disable: [forking] OK
bufferevent/bufferevent_pair_filters_disable: [forking] OK
bufferevent/bufferevent_connect: [forking] OK
bufferevent/bufferevent_connect_defer: [forking] OK
bufferevent/bufferevent_connect_lock: [forking] OK
bufferevent/bufferevent_connect_lock_defer: [forking] OK
bufferevent/bufferevent_connect_unlocked_cbs: [forking] OK
bufferevent/bufferevent_connect_fail: [forking] OK
bufferevent/bufferevent_timeout: [forking] OK
bufferevent/bufferevent_timeout_pair: [forking] OK
bufferevent/bufferevent_timeout_filter: [forking] OK
bufferevent/bufferevent_timeout_filter_pair: [forking] OK
bufferevent/bufferevent_trigger: [forking] OK
bufferevent/bufferevent_trigger_defer: [forking] OK
bufferevent/bufferevent_trigger_postpone: [forking] OK
bufferevent/bufferevent_trigger_defer_postpone: [forking] OK
bufferevent/bufferevent_zlib: [forking] OK
bufferevent/bufferevent_connect_fail_eventcb_defer: [forking] OK
bufferevent/bufferevent_connect_fail_eventcb: [forking] OK
bufferevent/bufferevent_socket_filter_inactive: [forking] OK
bufferevent/bufferevent_pair_flush: [forking] OK
bufferevent/bufferevent_filter_data_stuck: [forking] OK
http/primitives: OK
http/base: [forking] OK
http/bad_headers: OK
http/parse_query: OK
http/parse_query_str: OK
http/parse_uri: OK
http/parse_uri_nc: OK
http/uriencode: OK
http/basic: [forking] OK
http/basic_trailing_space: [forking] OK
http/simple: [forking] OK
http/simple_nonconformant: [forking] OK
http/cancel: [forking] OK
http/cancel_by_host: [forking] OK
http/cancel_by_host_inactive_server: [forking] OK
http/cancel_by_host_no_ns: [forking] OK
http/cancel_inactive_server: [forking] 

编写测试程序:

#include <event2/event.h>
#include <iostream>
using namespace std;
int main()
{
	//创建libevent的上下文
	event_base * base = event_base_new();
	if (base)
	{
		cout << "event create success!" << endl;
	}
	return 0;
}

结果为:

event create success!

测试通过,libevent安装成功。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值