2

DebianLinuxlennyでtimerfd_createとtimerfd_settimeを使おうとしています。マンページには、が含まれていると書かれています<sys/timerfd.h>。このファイルは私のシステムにありません。Debian Package Searchによると、timerfd.hを持つ唯一のパッケージはlinux-headers-*パケットです。

パケットlinux-headers-2.6.26-1-amd64とlinux-headers-2.6.26-1-commonをインストールしました。/lib/modules/2.6.26-1-amd64/build/include/linux/timerfd.hファイルを含めてみました(含めないでください<sys/timerfd.h>)。しかし、次のリンカーエラーが発生します:
slave.c:(。text+ 0x166):slave.cへの未定義の参照timerfd_ceate
:(。text + 0x1e5):への未定義の参照timerfd_settime

私のビルドコマンドはgcc-oslave slave.c -L ../ libs -lcan-lutils-lrtでした

canおよびutilsライブラリは私自身のものです。それらのいずれも、timerfd_*関数の1つを使用または定義していません。-lrtを試したのは、manページにない場合でもtimer_createとtimer_settimerが必要だからです。timer_createとtimer_settimerを使用したテストプログラムは、問題なく、期待どおりに機能します。

インストールする必要のあるパケット、リンクする必要のあるライブラリ、およびtimerfd_createとtimerfd_settimerを使用するために必要なインクルードファイル。

ありがとうEdger

4

1 に答える 1

3

これらの関数のサポートは、Linuxおよびglibcの新機能であり、Linuxカーネル2.6.25以降およびglibc2.8以降が必要です

于 2008-10-25T16:37:54.790 に答える