在 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 个退出状态
我需要链接哪个库?
-lrt
用选项编译它。它将被编译。
你可以试试gcc -o mytemer mytimer.c -lrt
它对我有用,但不是按这个顺序
gcc -lrt mytimer.c -o mytimer
-lrt 强制链接,但您必须先安装实时库,然后才能链接到它。大多数时候它是自动包含的,但如果没有,您需要使用 apt-get 安装实时库。然后,您将能够在以下(或类似)位置链接到它:
/lib/i386-linux-gnu/librt.so.1
如果您正在使用代码块并且由于某种原因 -lrt 不包含它,您可以使用以下菜单序列添加上述库路径和文件名:
Project->Build Options->Linker Settings->Link Libraries->Add
这应该记录在手册页中。鉴于它不是 add -lrt
。
请尝试以下方法:
gcc -lrt