当前位置: 首页 > 工具软件 > libev > 使用案例 >

libev学习系列之三:libev编译安装

芮祺
2023-12-01

libev学习系列之三:libev编译安装


版本说明

版本作者日期备注
0.1ZY2019.5.31初稿

目录

源码结构

4.24的源码结构如下:

.
├── aclocal.m4
├── autogen.sh
├── Changes
├── compile
├── config.guess
├── config.h.in
├── config.sub
├── configure
├── configure.ac
├── depcomp
├── ev.3
├── ev.c
├── event.c
├── event.h
├── ev_epoll.c
├── ev.h
├── ev++.h
├── ev_kqueue.c
├── ev.pod
├── ev_poll.c
├── ev_port.c
├── ev_select.c
├── ev_vars.h
├── ev_win32.c
├── ev_wrap.h
├── install-sh
├── libev.m4
├── LICENSE
├── ltmain.sh
├── Makefile.am
├── Makefile.in
├── missing
├── mkinstalldirs
├── README
├── Symbols.ev
├── Symbols.event
└── TODO

0 directories, 37 files

看到configure按照以往编译开源库的经验就可以基本确定这个是configure脚本系的编译方式了,那么按照我们之前源码编译一些开源库的方式,对于configure系(可以看我的博客里交叉编译php等一些总结),基本上通过configure配置一下编译器、安装位置等,然后运行configure这个shell脚本就会生成Makefile,接着make编译、make install安装即可(必要时加上root权限)。

这里再说一下正常编译安装到Ubuntu等的方式以及交叉编译的方式。

正常编译

正常编译(正常编译一般不需要指定安装目录、编译器以及宿主环境,所以直接默认即可):

./configure
make
sudo make install

至于使用时一个是加上头文件

#include <ev.h>

一个就是链接时

-lev

交叉编译

交叉编译(confgure脚本配置交叉编译器、宿主环境、安装位置):

CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/home/zy/work_dir/libev-4.24/arm-linux-ev/
make
make install

结果:

$ tree .
.
├── include
│   ├── event.h
│   ├── ev.h
│   └── ev++.h
├── lib
│   ├── libev.a
│   ├── libev.la
│   ├── libev.so -> libev.so.4.0.0
│   ├── libev.so.4 -> libev.so.4.0.0
│   └── libev.so.4.0.0
└── share
    └── man
        └── man3
            └── ev.3

5 directories, 9 files

编译和链接则由于没有安装到系统路径需要使用-I指定头文件位置以及-L指定库路径。

 类似资料: