用户名: 密码: 忘记密码? 注册
收藏此问题 发表新评论

library not found: -lrt

library not found: -lrt 这个包在哪里啊?谢谢各位!
昵称: huang_feilong  时间: 2008-12-08 12:46:45
/usr/lib/librt.so

我用的是CentOS5.1,其他的系统可能有点差别
昵称: warabi  时间: 2008-12-08 13:34:40
我在sco unix下面找不到,有谁知道在这个系统下是哪个包吗?谢谢楼上!
昵称: huang_feilong  时间: 2008-12-08 13:42:27
试试在链接时去掉-lrt

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

昵称: mymtom  时间: 2008-12-08 13:43:24
是 glibc 吧
昵称: netvt  时间: 2008-12-08 14:10:15
rt 是 runtime 的意思"运行时"
是根本之根本,有的没有是编译到内核里了.或编译成静态的了
昵称: netvt  时间: 2008-12-08 14:12:44
都是高手啊 但是编译老是报错 
UX:ld: ERROR: library not found: -lrt
*** Error code 1 (bu21)
UX:make: ERROR: fatal error.


 sco unix 系统 
去掉也是 不能解决的 有什么解决办法吗?谢谢各位关心
昵称: huang_feilong  时间: 2008-12-08 15:03:44
引用 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 15:25:46
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 16:10:12
引用 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 17:22:00
librt.a
昵称: once_and_again  时间: 2008-12-08 18:18:59
引用 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 14:39:13
nanosleep 可以实现毫秒级的延时,
楼主需要检查一下程序,如果这个nanosleep确实需要,可以考虑用select实现一个毫秒级的延时。
昵称: mymtom  时间: 2008-12-10 11:12:46
我遇到个相似的问题,如下
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 19:46:51
发表评论
昵称:
内容:
验证: