19

在 Linux 上编译调用 POSIX 计时器函数(例如:timer_create、timer_settime)的程序会返回如下错误:

在函数“foo”中:
timer.c:(.text+0xbb): undefined reference to `timer_create'
timer.c:(.text+0x187): undefined reference to `timer_settime'
collect2: ld 返回 1 个退出状态

我需要链接哪个库?

4

5 回答 5

29

-lrt用选项编译它。它将被编译。

于 2009-02-16T08:49:53.263 回答
7

你可以试试gcc -o mytemer mytimer.c -lrt 它对我有用,但不是按这个顺序 gcc -lrt mytimer.c -o mytimer

于 2016-05-20T14:27:31.083 回答
4

-lrt 强制链接,但您必须先安装实时库,然后才能链接到它。大多数时候它是自动包含的,但如果没有,您需要使用 apt-get 安装实时库。然后,您将能够在以下(或类似)位置链接到它:

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

如果您正在使用代码块并且由于某种原因 -lrt 不包含它,您可以使用以下菜单序列添加上述库路径和文件名:

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

于 2012-11-24T14:17:14.997 回答
3

这应该记录在手册页中。鉴于它不是 add -lrt

于 2008-11-03T20:15:25.107 回答
2

请尝试以下方法:

gcc -lrt
于 2009-03-23T11:31:39.323 回答