pthread_cond_timedwait在Solaris 10上将错误与clock_gettime相关联

时间:2009-07-08 10:20:13

标签: c++ time solaris pthreads

我有一些使用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编译器。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

在命令行上尝试“man clock_getttime”或“man -k clock_getttime”。这将为您提供链接到的库。 然后,将此行包含在g ++ -L / path / to / lib -lNameOfLib中(或作为链接标志位于makefile中)

Solaris Unix API有时与标准Unix函数不同。