我正在尝试一些定时器功能,并以上述链接器错误结束。网上有人建议将-lrt传递给gcc,它工作!什么是'-lrt',它是如何帮助克服这个错误的?通过将-lrt传递给gcc修复``timer_getoverrun'的未定义引用。但为什么?
我查看了gcc --help,但找不到这些选项和gcc的手册页(这太巨大了)也给了很多洞察力。
我正在尝试一些定时器功能,并以上述链接器错误结束。网上有人建议将-lrt传递给gcc,它工作!什么是'-lrt',它是如何帮助克服这个错误的?通过将-lrt传递给gcc修复``timer_getoverrun'的未定义引用。但为什么?
我查看了gcc --help,但找不到这些选项和gcc的手册页(这太巨大了)也给了很多洞察力。
它将rt库添加到链接器(请参阅librt),其中还定义了timer_getoverrun
。
它不在gcc手册页中,因为它不是一个选项。它是一个库(-l
代表library
,这是路,库传递给链接器)
rt
是一个时间库。 timer_getoverrun
就是在那里定义的。
timer_getoverrun()
函数在librt.so中实现。从timer_getoverrun(2)
手册页:
SYNOPSIS ... Link with -lrt.
谢谢,我很困惑的是 'r' 和“t'are一些还挺GCC选项:) – 2011-06-01 09:57:46