1
當我試圖編譯用手魷魚RHEL 5.5的服務器上,運行configure
找來鏈接器如何知道與系統調用鏈接的內容?
configure: WARNING: Eep! Cannot find epoll, kqueue, /dev/poll, poll or select!
configure: WARNING: Will try select and hope for the best.
configure: Using select for the IO loop.
貌似內核沒有與CONFIG_EPOLL
配置。所以我試圖編譯this example epoll program來檢查它是否有效。
在我的gentoo盒子上(啓用了CONFIG_EPOLL
),它的編譯沒有任何問題。
在服務器上,我得到了
/tmp/cc8PhJh0.o: In function 'main':
epoll-exmaple.c:(.text+0x262): undefined reference to 'epoll_create1'
collect2: ld returned 1 exit status
我們都知道C程序編譯器會在* .h文件的定義和鏈接進行鏈接與* .so文件。
我的問題是,epoll_create1
是一個系統調用內核。鏈接器搜索的準確位置是哪個文件來定位到系統調用的實現?
謝謝。
這就解釋了鏈接器搜索哪個文件。我可以在服務器上grep出'epoll_create1'符號。但是,如果沒有啓用epoll的內核,爲什麼不能鏈接它呢? – AleiPhoenix 2013-03-18 08:24:42
更新:對不起,我錯過了_create1時,greping。所以這是一個與glibc相關的問題。謝謝。 – AleiPhoenix 2013-03-18 08:58:26