Какие библиотеки необходимо связать для timer_create, timer_settime и других функций, связанных с таймером - PullRequest
15 голосов
/ 03 ноября 2008

Компиляция программы в Linux, которая вызывает функции таймера POSIX (например, timer_create, timer_settime), возвращает такие ошибки, как:

In function `foo':
timer.c:(.text+0xbb): undefined reference to `timer_create'
timer.c:(.text+0x187): undefined reference to `timer_settime'
collect2: ld returned 1 exit status

Какую библиотеку мне нужно связать?

Ответы [ 5 ]

24 голосов
/ 16 февраля 2009

Скомпилируйте его с опцией -lrt. Он будет скомпилирован.

4 голосов
/ 24 ноября 2012

-lrt принудительно устанавливает ссылку, но вы должны иметь библиотеку в реальном времени, прежде чем сможете ссылаться на нее. Большую часть времени он включается автоматически, но если нет, вам нужно установить библиотеку в реальном времени, используя apt-get. Тогда вы сможете сделать ссылку на него в следующем (или похожем) месте:

/lib/i386-linux-gnu/librt.so.1

Если вы используете кодовые блоки и по какой-то причине -lrt не включает его, вы можете добавить вышеуказанный путь к библиотеке и имя файла, используя следующую последовательность меню:

Project->Build Options->Linker Settings->Link Libraries->Add

3 голосов
/ 20 мая 2016

вы можете попробовать gcc -o mytemer mytimer.c -lrt у меня так работает но не в таком порядке gcc * lrt mytimer.c -o mytimer

3 голосов
/ 03 ноября 2008

Это должно быть задокументировано на странице руководства. Учитывая, что это не добавить -lrt.

2 голосов
/ 23 марта 2009

пожалуйста, попробуйте следующее:

gcc -lrt
...