Question

J'essaie d'utiliser timerfd_create et timerfd_settime sous Debian Linux Lenny. La page de manuel dit d'inclure <sys/timerfd.h>. Ce fichier ne peut pas être localisé sur mon système. Selon la recherche de paquets Debian, les seuls paquets avec timerfd.h sont les paquets linux-headers- *.

J'ai installé les paquets linux-headers-2.6.26-1-amd64 et linux-headers-2.6.26-1-common. J'ai essayé d'inclure le fichier /lib/modules/2.6.26-1-amd64/build/include/linux/timerfd.h (et sans inclure timerfd_ceate). Mais alors je reçois l'erreur de l'éditeur de liens suivante:
slave.c :(.. text + 0x166): référence non définie à timerfd_settime
slave.c :(.. text + 0x1e5): référence non définie à <=>

Ma commande de construction était gcc -o slave slave.c -L ../ libs -lcan -lutils -lrt

Les bibliothèques can et utils sont les miennes. Aucun d'entre eux n'utilise ou ne définit l'une des fonctions timerfd_ *. J'ai essayé -lrt parce que timer_create et timer_settimer en ont besoin, même si ce n'est pas dans la page de manuel. Un programme de test avec timer_create et timer_settimer fonctionne sans problème et comme prévu.

Quels paquets dois-je installer, quelle bibliothèque dois-je créer un lien et quels fichiers d'inclusion dois-je utiliser pour utiliser timerfd_create et timerfd_settimer?

Merci Edger

Était-ce utile?

La solution

La prise en charge de ces fonctions est nouvelle dans Linux et la glibc. Vous avez besoin du noyau Linux 2.6.25 ou supérieur et glibc 2.8 ou supérieur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top