当前位置: 技术问答>linux和unix
关于epoll的链接库
来源: 互联网 发布时间:2017-01-29
本文导语: 大家好,我把Redhat9.0的内核从2.4.2升级到2.6.2之后,编译一个关于epoll的程序,在链接的时候发现了错误: main.c:114:对‘epoll_create’未定义的引用 main.c:119:对‘epoll_ctl’未定义的引用 main.c:132:对‘epoll_wait’未定...
大家好,我把Redhat9.0的内核从2.4.2升级到2.6.2之后,编译一个关于epoll的程序,在链接的时候发现了错误:
main.c:114:对‘epoll_create’未定义的引用
main.c:119:对‘epoll_ctl’未定义的引用
main.c:132:对‘epoll_wait’未定义的引用
main.c:158:对‘epoll_ctl’未定义的引用
main.c:171:对‘epoll_ctl’未定义的引用
请问这个问题是由于哪方面原因引起的?缺乏链接库,还是在升级内核出现问题?
请大家指点一下,谢谢!
main.c:114:对‘epoll_create’未定义的引用
main.c:119:对‘epoll_ctl’未定义的引用
main.c:132:对‘epoll_wait’未定义的引用
main.c:158:对‘epoll_ctl’未定义的引用
main.c:171:对‘epoll_ctl’未定义的引用
请问这个问题是由于哪方面原因引起的?缺乏链接库,还是在升级内核出现问题?
请大家指点一下,谢谢!
|
链接的时候提示未定义引用,说明程序所链的库没有epoll这几个接口。
epoll除了内核支持外,还需要系统库也支持的,除非直接通过系统调用。
在一个比较老的机器上,grep了一下c库,没有返回结果,说明c库不支持epoll
[test@test lib]$ grep epoll_create libc-2.3.2.so
[test@test lib]$ ls -lh libc-2.3.2.so
-rwxr-xr-x 1 root root 1.5M Mar 14 2003 libc-2.3.2.so
[test@test lib]$ grep epoll_create libc-2.3.2.so
[test@test lib]$
在我一个较新的机器上,同样grep了一下,提示matches,说明这个C库支持epoll
bash-2.05b# ls -lh libc-2.5.so
-rwxr-xr-x 1 root root 1.5M Mar 16 2010 libc-2.5.so
bash-2.05b#
bash-2.05b# grep epoll_create libc-2.5.so
Binary file libc-2.5.so matches
bash-2.05b#
epoll除了内核支持外,还需要系统库也支持的,除非直接通过系统调用。
在一个比较老的机器上,grep了一下c库,没有返回结果,说明c库不支持epoll
[test@test lib]$ grep epoll_create libc-2.3.2.so
[test@test lib]$ ls -lh libc-2.3.2.so
-rwxr-xr-x 1 root root 1.5M Mar 14 2003 libc-2.3.2.so
[test@test lib]$ grep epoll_create libc-2.3.2.so
[test@test lib]$
在我一个较新的机器上,同样grep了一下,提示matches,说明这个C库支持epoll
bash-2.05b# ls -lh libc-2.5.so
-rwxr-xr-x 1 root root 1.5M Mar 16 2010 libc-2.5.so
bash-2.05b#
bash-2.05b# grep epoll_create libc-2.5.so
Binary file libc-2.5.so matches
bash-2.05b#
|
glibc库不支持?