pinkme005 发表于 2005-10-30 23:49:57

偶看来只有放弃了。。。感觉偶的glib的epoll支持挂了。

Making all in src
make: Entering directory `/tmp/BitStormLite-0.1b/src'
g++ `pkg-config --cflags gtk+-2.0` -g -O2-o bitstormlite -lpthread `curl-config --libs` `pkg-config --libs gtk+-2.0` bdict.o BitSet.o blist.o BTTask.o EpollReactor.o LiteWindow.o main.o PeerAcceptor.o PeerLink.o PeerManager.o PieceRequest.o sha.o Socket.o Storage.o TCPTracker.o UDPTracker.o ThreadMutex.o TorrentFile.o TrackerManager.o
EpollReactor.o(.text+0x3fb): In function `CEpollReactor::addSocket(ISocket*)':
/tmp/BitStormLite-0.1b/src/EpollReactor.cpp:58: undefined reference to `epoll_ctl'
EpollReactor.o(.text+0x43f): In function `CEpollReactor::removeSocket(ISocket*)':
/tmp/BitStormLite-0.1b/src/EpollReactor.cpp:64: undefined reference to `epoll_ctl'
EpollReactor.o(.text+0x468): In function `CEpollReactor::start()':
/tmp/BitStormLite-0.1b/src/EpollReactor.cpp:73: undefined reference to `epoll_create'
EpollReactor.o(.text+0x571): In function `CEpollReactor::svc()':
/tmp/BitStormLite-0.1b/src/EpollReactor.cpp:114: undefined reference to `epoll_wait'
EpollReactor.o(.text+0x67b): In function `CEpollReactor::updateMask(ISocket*)':
/tmp/BitStormLite-0.1b/src/EpollReactor.cpp:190: undefined reference to `epoll_ctl'
collect2: ld returned 1 exit status
make: *** Error 1
make: Leaving directory `/tmp/BitStormLite-0.1b/src'
make: *** Error 1
make: Leaving directory `/tmp/BitStormLite-0.1b'
make: *** Error 2


哪位大大能够放一个静态链接的上来就功德无量了
没想到偶一向认为兼容性一流的LFS,也会躺在自家门口,叹啊。。。。

cat /usr/include/linux/version.h
#define UTS_RELEASE "2.6.13.1"
#define LINUX_VERSION_CODE 132621
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.1/specs
Configured with: ../gcc-3.3.1/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++
Thread model: posix
gcc version 3.3.1


/lib/libc.so.6
GNU C Library stable release version 2.3.2, by Roland McGrath et al.
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.


Compiled by GNU CC version 3.3.1.
Compiled on a Linux 2.4.22 system on 2004-10-08.
Available extensions:
      GNU libio by Per Bothner
      crypt add-on version 2.1 by Michael Glad and others
      linuxthreads-0.10 by Xavier Leroy
      BIND-8.2.3-T5B
      libthread_db work sponsored by Alpha Processor Inc
      NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Report bugs using the `glibcbug' script to <[email protected]>.

gxcooo 发表于 2005-10-31 09:36:20

可能是glibc没有epoll支持

xdrag 发表于 2005-10-31 10:31:10

gxcooo 把源码和编译好的一块放出来如何呢?

gxcooo 发表于 2005-10-31 11:09:29

因为有各个库的依赖关系,编译好的版本不能在所有发行版上运行
比如我机器上是gtk2.8,编译出的程序就不能在gtk2.6的机器上运行
楼主的问题是缺少epoll支持,估计是glibc版本问题

pinkme005 发表于 2005-10-31 17:48:07

555......哭死。。。那个epoll是不是一个单独的什么库啊?
要不搞一个静态编译的吧。。。
我的GTK好像是2.6的。。
如果可以,升级一下GTK也未尝不可
要不版主就说一下如果用select()替代epoll_()吧

gxcooo 发表于 2005-10-31 17:55:52

epoll是2.6内核提供的新功能,但需要通过glibc来调用
静态编译也解决不了你的问题,看来是你的libc6-dev版本低
我对LFS不熟,不知道它用什么方式管理软件包,debian下这个包叫做libc6-dev

select替代epoll是可以的,当初也有这个考虑,目的是移植到kernel2.4或者FreeBSD等平台
不过目前没时间考虑移植工作

iamfool 发表于 2005-11-2 17:30:43

lfs下面是没有包管理的,所有的东西都是从源代码编译来的,所以叫linux from scratch.
做好的lfs是很难升级glibc库的.
好在我刚做的lfs用的都是最新的包.
to pinkme005
如果你要升级glibc库,可以看看lfs-hints,我记得有一个hint是说如何升级glibc库.
如果你还保留有做lfs留下的tools工具链,那就可以choot /tools 然后象第六章里那样重新编译安装一个新的glibc库.不过升级后可能有一些程序会不正常,要重新编译. 这个方法我以前用过.

gxcooo 发表于 2005-11-2 21:22:57

:shock::oops:

pinkme005 发表于 2005-11-5 15:52:56

郁闷了。。。当初做的LFS5的时候胆子小了一点,就用LFS-BOOK上说的GLIBC
早知道就用新点的GLIBC了。。叹。。。看来只有以后重做LFS再享用了。。

pinkme005 发表于 2005-11-5 15:53:23

郁闷了。。。当初做的LFS5的时候胆子小了一点,就用LFS-BOOK上说的GLIBC
早知道就用新点的GLIBC了。。叹。。。看来只有以后重做LFS再享用了。。
页: [1]
查看完整版本: 偶看来只有放弃了。。。感觉偶的glib的epoll支持挂了。