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