barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 15 апреля 2011 г.

undefined reference to 'timer_settime'

Проблема:
При компиляции программы, работающей с таймером, линковщик выдает ошибки типа:
undefined reference to 'timer_create'
undefined reference to 'timer_settime'
Решение: при компиляции использовать ключ -lrt

Вот примерчик их использования для периодической генерации SIGALRM:

#include <signal.h>
#include <sys/time.h>
#include <time.h>
...
timer_t mytimer;
struct sigevent timer_event;
/*
* - use signals
* - send SIGALRM
*/
timer_event.sigev_notify=SIGEV_SIGNAL;
timer_event.sigev_signo= SIGALRM;
if (timer_create(CLOCK_REALTIME, &timer_event, &mytimer) < 0)
{
printf("timer create error");
exit(0);
}
if(timer_settime(mytimer,CLOCK_REALTIME,&timerSettings,NULL)!=0)
{
printf("timer setting error");
exit(0);
}
while(1)
pause();

Комментариев нет:

Отправить комментарий