library not found: -lrt

library not found: -lrt 这个包在哪里啊?谢谢各位!

作者: huang_feilong   发布时间: 2008-12-08

/usr/lib/librt.so

我用的是CentOS5.1,其他的系统可能有点差别

作者: warabi   发布时间: 2008-12-08

我在sco unix下面找不到,有谁知道在这个系统下是哪个包吗?谢谢楼上!

作者: huang_feilong   发布时间: 2008-12-08

试试在链接时去掉-lrt

aio_XXX
sem_XXX
之类的系统调用属于Posix实时扩展
在Linux/Solaris/NetBSD链接是需要-lrt
但是在FreeBSD下不需要(也没有rt库)

作者: mymtom   发布时间: 2008-12-08

是 glibc 吧

作者: netvt   发布时间: 2008-12-08

rt 是 runtime 的意思"运行时"
是根本之根本,有的没有是编译到内核里了.或编译成静态的了

作者: netvt   发布时间: 2008-12-08

都是高手啊 但是编译老是报错 
UX:ld: ERROR: library not found: -lrt
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.


 sco unix 系统 
去掉也是 不能解决的 有什么解决办法吗?谢谢各位关心

作者: huang_feilong   发布时间: 2008-12-08

引用 5 楼 netvt 的回复:
rt 是 runtime 的意思"运行时"
是根本之根本,有的没有是编译到内核里了.或编译成静态的了

rt 不是runtime; 在这里是Realtime的意思,看Solaris就知道了:

Realtime Library Functions sem_open(3RT)

NAME
  sem_open - initialize/open a named semaphore

SYNOPSIS
  cc [ flag... ] file... -lrt [ library... ]
  #include <semaphore.h>

  sem_t *sem_open(const char *name, int oflag, /* unsigned
  long mode, unsigned int value */ ...);


引用 6 楼 huang_feilong 的回复:
都是高手啊 但是编译老是报错
UX:ld: ERROR: library not found: -lrt
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.


sco unix 系统
去掉也是 不能解决的 有什么解决办法吗?谢谢各位关心

SCO呀,如果去掉-lrt也不能解决问题,应该报
Undefined symbol xxx 之类的错,
看看是报错的函数是什么,
然后man xxx 一下,如果报
No manual entry for xxx
那说明楼主用的SCO没有xxx函数,需要用自己实现这个函数,或用其他函数代替

作者: mymtom   发布时间: 2008-12-08

UX:ld: ERROR: Symbol referencing errors. No output written to showshared
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.
这是去掉-lrt后的结果啊
谢谢mymtom

作者: huang_feilong   发布时间: 2008-12-08

引用 8 楼 huang_feilong 的回复:
UX:ld: ERROR: Symbol referencing errors. No output written to showshared
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.
这是去掉-lrt后的结果啊
谢谢mymtom

是什么函数报Symbol referencing errors错误呀?
可能的函数有:
aio_cancel() aio_error() aio_fsync() aio_read()
aio_return() aio_suspend() aio_write()

clock_getres() clock_gettime() clock_settime()

fdatasync()

lio_listio() 

mlock() mlockall()
mq_close() mq_getattr() mq_notify() mq_open()
mq_receive() mq_send() mq_setattr() mq_unlink()
munlock() munlockall()

nanosleep()

sched_get_priority_max() sched_get_priority_min() sched_getparam()
sched_getscheduler() sched_rr_get_interval() sched_setparam()
sched_setscheduler() sched_yield()  
sem_close() sem_destroy() sem_getvalue() sem_init()
sem_open() sem_post() sem_trywait() sem_unlink() sem_wait()
shm_open() shm_unlink() 
sigqueue() sigtimedwait() sigwaitinfo()

timer_create() timer_delete() timer_getoverrun() timer_gettime()
timer_settime()  

作者: mymtom   发布时间: 2008-12-08

librt.a

作者: once_and_again   发布时间: 2008-12-08

引用 9 楼 mymtom 的回复:
引用 8 楼 huang_feilong 的回复:
UX:ld: ERROR: Symbol referencing errors. No output written to showshared
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.
这是去掉-lrt后的结果啊
谢谢mymtom

是什么函数报Symbol referencing errors错误呀?
可能的函数有:
aio_cancel() aio_error() aio_fsync() aio_read()
aio_return() aio_suspend() aio_write()

clock_getres() clock_gettime() clo…

你说得很对,去掉这个-lrt后 我把nanosleep不要了,就能了,这函数到底有多少作用?谢谢你了 分少不要见怪啊 祝你一路好运!

作者: huang_feilong   发布时间: 2008-12-09

nanosleep 可以实现毫秒级的延时,
楼主需要检查一下程序,如果这个nanosleep确实需要,可以考虑用select实现一个毫秒级的延时。

作者: mymtom   发布时间: 2008-12-10

我遇到个相似的问题,如下
Undefined first referenced
 symbol in file
sqlcxt /var/tmp//ccggHJDJ.o
ld: fatal: Symbol referencing errors. No output written to connect
collect2: ld returned 1 exit status
解决不了啊

请高手指点

作者: yihai2000   发布时间: 2011-04-21