timerfd_create с тестированием Debian Linux на amd64
Вопрос
Я пытаюсь использовать timerfd_create и timerfd_settime под Debian Linux lenny.На странице руководства сказано включить <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 (и не включать <sys/timerfd.h>
).Но затем я получаю следующую ошибку компоновщика:
раб.c:(.text+0x166):неопределенная ссылка на timerfd_ceate
раб.c:(.text+0x1e5):неопределенная ссылка на timerfd_settime
Моя команда сборки была gcc -o подчиненный раб.c -L../libs -lcan -lutils -lrt
Библиотеки can и utils — мои собственные.Ни один из них не использует и не определяет ни одну из функций timerfd_*.Я попробовал -lrt, потому что он нужен timer_create и timer_settimer, даже если его нет на странице руководства.Тестовая программа с timer_create и timer_settimer работает без проблем и как положено.
Какие пакеты мне нужно установить, какую библиотеку мне нужно связать и какие файлы включения мне нужно использовать, чтобы использовать timerfd_create и timerfd_settimer.
Спасибо, Эджер
Решение
Поддержка этих функций является новой в Linux и glibc, вам необходимо ядро Linux 2.6.25 или выше. и glibc 2.8 или выше.