Linux之libevent的编译&测试 (一)

https://blog.csdn.net/sauphy/article/details/50121223

 

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值