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