Вопрос

Я пытаюсь использовать 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 или выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top