在Linux上编译一个调用POSIX定时器函数(例如:timer_create,timer_settime)的程序会返回如下错误:
在函数`foo'中: timer.c :(。text + 0xbb):未定义的引用'timer_create' timer.c :(。text + 0x187):未定义的引用'timer_settime' collect2:ld返回1退出状态
我需要链接哪个库?
用-lrt
选项编译它。 它会被编译。
这应该记录在手册页中。 鉴于它不是加-lrt
。
-lrt强制链接,但是必须先将实时库存在适当位置,然后才能链接到该链接。 大多数情况下,它会自动包含,但是如果没有,则需要使用apt-get安装实时库。 然后,您将能够在以下(或类似)位置链接到它:
/lib/i386-linux-gnu/librt.so.1
如果您使用的是代码块,由于某些原因,lrt不包含它,您可以使用以下菜单序列添加上面的库路径和文件名:
Project->Build Options->Linker Settings->Link Libraries->Add
请尝试以下操作:
gcc -lrt
你可以尝试gcc -o mytemer mytimer.c -lrt它适用于我,但不以这个顺序gcc * lrt mytimer.c -o mytimer