문제

Debian Linux Lenny에서 Timerfd_create 및 Timerfd_settime을 사용하려고합니다. 인력은 포함하라고 말합니다 <sys/timerfd.h>. 이 파일은 내 시스템에 위치 할 수 없습니다. 데비안 패키지에 따르면 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 :(. 텍스트+0x166) : 정의되지 않은 참조 timerfd_ceate
Slave.c :(. 텍스트+0x1e5) : 정의되지 않은 참조 timerfd_settime

내 빌드 명령은 gcc -o slave.c -l ../ libs -lcan -lutils -lrt

CAN과 UTILS 라이브러리는 내 자신의 것입니다. 그들 중 비는 timerfd_* 함수 중 하나를 사용하거나 정의합니다. Timer_Create 및 Timer_SetTimer가 인공 지에 있지 않더라도 필요하기 때문에 -lrt를 시도했습니다. TIMER_CREATE 및 TIMER_SETTIMER가있는 테스트 프로그램은 문제없이 예상대로 작동합니다.

설치 해야하는 패킷, 링크 해야하는 라이브러리 및 TimerFD_Create 및 TimerFD_SetTimer를 사용하는 데 필요한 파일 포함해야 할 파일이 필요합니다.

감사합니다 Edger

도움이 되었습니까?

해결책

이 기능에 대한 지원은 Linux 및 GLIBC에서 새로운 것이므로 Linux 커널 2.6.25 이상이 필요합니다. 그리고 glibc 2.8 이상.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top