質問

Debian Linux lennyでtimerfd_createとtimerfd_settimeを使用しようとしています。マンページには、<sys/timerfd.h>を含めるように記載されています。このファイルはシステム上にありません。 Debianパッケージ検索によると、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ファイルをインクルードしようとしました(timerfd_ceateはインクルードしません)。しかし、その後、次のリンカーエラーが表示されます。
slave.c :(。text + 0x166):timerfd_settime
への未定義の参照 slave.c :(。text + 0x1e5):<=>

への未定義の参照

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

でした

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

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

ありがとう エッジャー

役に立ちましたか?

解決

これらの機能のサポートはLinuxおよびglibcで新しく追加されました。Linuxカーネル2.6.25以降 glibc 2.8以降が必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top