首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于epoll的链接库,该如何处理

2012-04-26 
关于epoll的链接库大家好,我把Redhat9.0的内核从2.4.2升级到2.6.2之后,编译一个关于epoll的程序,在链接的

关于epoll的链接库
大家好,我把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’未定义的引用
  
  请问这个问题是由于哪方面原因引起的?缺乏链接库,还是在升级内核出现问题?

请大家指点一下,谢谢!

[解决办法]
glibc库不支持?
[解决办法]
链接的时候提示未定义引用,说明程序所链的库没有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#

热点排行