Linux上的pthread_mutex_timedlock

时间:2018-10-18 17:02:33

标签: linux windows pthreads

我正在使用pthreads将窗口互斥锁移植到linux并使用gcc进行编译。我在Windows上遇到了WaitForSingleObject函数。我正尝试使用pthread_mutex_timedlock来锁定互斥锁x秒钟,就像WaitForSingleObject一样。

我包含了time.hpthread.h文件,但是当我尝试编译时,我得到了对pthread_mutex_timedlock错误的未定义引用。当我从pthread_mutex_timedlock中取出一个参数并尝试进行编译时,我得到了

  

函数“ pthread_mutex_timedlock”的参数太少

对于为什么会收到未定义的参考错误,我感到困惑。我的代码段如下:

#include <pthread.h>
#include <time.h>

int dwWaitResult;
struct timespec timeout;
clock_gettime(CLOCK_REALTIME, &timeout);
timeout.tv_sec = 10;

dwWaitResult = pthread_mutex_timedlock(mutexArray[mutexIndex], &timeout);

1 个答案:

答案 0 :(得分:1)

  

未定义的引用意味着您不能链接pthread lib;您是否尝试添加-lpthread? @OznOg

OznOg回答了我的问题。我只需要在编译时使用-pthread。谢谢!!