我有一些使用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编译器。
答案 0 :(得分:3)
-lc答案错了。你需要添加-lrt(大概是实时的......?)
答案 1 :(得分:1)
在命令行上尝试“man clock_getttime”或“man -k clock_getttime”。这将为您提供链接到的库。 然后,将此行包含在g ++ -L / path / to / lib -lNameOfLib中(或作为链接标志位于makefile中)
Solaris Unix API有时与标准Unix函数不同。