LINUX下libevent编译&&demo运行

对libevent有些感兴趣,下载了一个准备研究一下。在编译过程中,遇到了一些问题,写篇文章记录一下。

libevent : libevent-2.1.8-stable

编译&&安装

1、./configure --prefix=/opt/libevent

这一步是用来生成编译时用的makefile,其中,–prefix用来指定libevent的安装目录。

2、make 编译,我在编译的时候遇到如下报错:/root/libevent-2.1.8-stable/missing:行81: aclocal-1.15: 未找到命令

解决办法:

执行命令,autoreconf -ivf 让其自动配置一下源代码。

然后在make编译就没问题了。

3、make install 安装成功,可以看到 /opt/libevent下面已经有文件生成了。

demo测试

1、用个定时器来测一下,代码如下:

    #include 
    #include 
    #include 
    #include 
    struct event ev;
    struct timeval tv;
     
    void time_cb(int fd, short event, void *argc)
    {
            printf("timer wakeup!\n");
            event_add(&ev, &tv);
    }           
                
    int main()  
    {           
            struct event_base *base = event_init();
            tv.tv_sec = 10;
            tv.tv_usec = 0; 
            evtimer_set(&ev, time_cb, NULL);
            event_base_set(base, &ev);
            event_add(&ev, &tv);
            event_base_dispatch(base);
    }  

编译:gcc test.c -o test_event -I /opt/libevent/include/ -L /opt/libevent/lib/ -levent

注意:-I 是大写的 i 啊,不是小写的L,用来指定头文件的,-L则是用来指定引用库的位置的。

2、运行 ./test_event

报错:./test_event: error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory

没找到库,链接一下:ln -s /opt/libevent/lib/libevent-2.1.so.6 /usr/lib64/libevent-2.1.so.6

再次运行,ok了。

OK,可以继续捣鼓这个libevent了。

你可能感兴趣的:(libevent)