Solaris 10 上的 pthread_cond_timedwait 与clock_gettime 链接错误
我有一些使用 pthread_cond_wait
的代码,如下所示:
struct timespec ts;
clock_getttime(CLOCK_REALTIME, &timS);
ts.tv_sec += delay;
pthread_mutex_lock(&a_mutex);
pthread_cond_timedwait(&thread_cond, &a_mutex,&timS);
pthread_mutex_unlock(&a_mutex);
但是我在编译时遇到链接器错误,
未定义的符号clock_gettime ...首先在(包含该代码的文件)中引用
这是唯一的我得到链接器错误; 如果我注释掉它编译的这段代码,那么 pthread 库就会加载。 我在某处读到我需要设置 -lc 标志,我已经完成了,但似乎我还需要设置其他内容。
有谁知道是什么吗?
这是在 Solaris 10 上,使用 Sun 的 5.8 编译器。
I have a bit of code which used pthread_cond_wait
which looks like this:
struct timespec ts;
clock_getttime(CLOCK_REALTIME, &timS);
ts.tv_sec += delay;
pthread_mutex_lock(&a_mutex);
pthread_cond_timedwait(&thread_cond, &a_mutex,&timS);
pthread_mutex_unlock(&a_mutex);
But I get a linker error on compilation,
undefined symbol clock_gettime ... first referenced in (the file with that code)
This is the only linker error I get; if I comment out this block of code it compiles, so the pthread library is loading. I read somewhere that I need the -lc flag set, which I have done but it appears that I need to set something else too.
Does anybody know what?
This is on Solaris 10, using Sun's 5.8 compiler.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
-lc 答案是错误的。 您需要添加 -lrt (大概是实时......?)
The -lc answer is wrong. You need to add -lrt (presumably real time..?)
在命令行上尝试“manclock_getttime”或“man -kclock_getttime”。 这将为您提供要链接到的库。
然后,将此行包含在 g++ -L/path/to/lib -lNameOfLib 中(或在 makefile 中作为链接标志)
Solaris Unix API 有时与标准 Unix 函数不同。
On the command line try "man clock_getttime" or "man -k clock_getttime". This will give you the library to link to.
Then, include this line in your g++ -L/path/to/lib -lNameOfLib (or in the makefile as link flags)
Solaris Unix APIs are sometimes different than standard Unix functions.