Linux之libevent的编译&测试

1.下载
http://download.csdn.net/detail/sauphy/9314091


2. 编译
./configure --prefix=/opt/libevent
make
make install


3. 开发编译
gcc test_signal.c -o ok -I/opt/libevent/include -L/opt/libevent/lib -levent
./ok


3-1、连接出错:
error while loading shared libraries: 
libevent-2.0.so.5: cannot open shared object file: No such file or directory
A1、
ln -s /opt/libevent/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5


4. 运行
./ok

Ctrl+C 运行(显示两个信号)


===============================

#include <sys/types.h>
#include <event2/event-config.h>

#include <sys/stat.h>
#ifndef WIN32
#include <sys/queue.h>
#include <unistd.h>
#include <sys/time.h>
#else
#include <winsock2.h>
#include <windows.h>
#endif
#include <signal.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

#include <event.h>

#ifdef _EVENT___func__
#define __func__ _EVENT___func__
#endif

int called = 0;

static void
signal_cb(evutil_socket_t fd, short event, void *arg)
{
	struct event *signal = arg;

	printf("%s: got signal %d\n", __func__, EVENT_SIGNAL(signal));

	if (called >= 2)
		event_del(signal);

	called++;
}

int
main(int argc, char **argv)
{
	struct event signal_int;
	struct event_base* base;
#ifdef WIN32
	WORD wVersionRequested;
	WSADATA wsaData;

	wVersionRequested = MAKEWORD(2, 2);

	(void) WSAStartup(wVersionRequested, &wsaData);
#endif

	/* Initalize the event library */
	base = event_base_new();

	/* Initalize one event */
	event_assign(&signal_int, base, SIGINT, EV_SIGNAL|EV_PERSIST, signal_cb,
	    &signal_int);

	event_add(&signal_int, NULL);

	event_base_dispatch(base);
	event_base_free(base);

	return (0);
}

================

CC       = gcc
CXX      = g++
LD_FLAG  = -g
LIBS     = -L/opt/libevent/lib -levent
INCLUDES = -I/opt/libevent/include

TARGET = ok

${TARGET}:
        $(CC) main.c $(LD_FLAG) $(LIBS) $(INCLUDES) -o  $(TARGET) 
clean:
        rm -rf *.o *~ $(TARGET)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值