Solaris 10 上的 pthread_cond_timedwait 与clock_gettime 链接错误

发布于 2024-07-26 21:01:07 字数 543 浏览 4 评论 0原文

我有一些使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

闻呓 2024-08-02 21:01:08

-lc 答案是错误的。 您需要添加 -lrt (大概是实时......?)

The -lc answer is wrong. You need to add -lrt (presumably real time..?)

青春有你 2024-08-02 21:01:08

在命令行上尝试“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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文