在Linux上编译一个调用POSIX定时器函数(例如:timer_create,timer_settime)的程序会返回错误,例如:
在函数"foo"中:timer.c:(.text+0xbb):对"timer_create"的未定义引用timer.c:(.text+0x187):对"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
这应该记录在手册页中。如果不是添加-lrt
。
请尝试以下操作:
gcc -lrt