我正在使用pthreads将窗口互斥锁移植到linux并使用gcc进行编译。我在Windows上遇到了WaitForSingleObject
函数。我正尝试使用pthread_mutex_timedlock
来锁定互斥锁x秒钟,就像WaitForSingleObject
一样。
我包含了time.h
和pthread.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);
答案 0 :(得分:1)
未定义的引用意味着您不能链接pthread lib;您是否尝试添加-lpthread? @OznOg
OznOg回答了我的问题。我只需要在编译时使用-pthread。谢谢!!