错误:未知类型名称'pthread_mutex_t'

时间:2017-02-10 13:20:58

标签: c header pthreads

尝试编译项目,我在thread.h中收到此错误。

inc/thread.h:38:15: error: unknown type name 'pthread_mutex_t'

当我查看thread.h时,我看到以下内容:

#include <pthread.h>
#include "rel_assert.h"
#define MUTEX pthread_mutex_t

这是导致错误的最后一行。 搜索后我在pthreadtypes.h中找到了pthread_mutex_t结构定义,所以我尝试将其包括在内。然后我出现以下错误:

inc/pthreadtypes.h:16:3: error: #error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead." inc/pthreadtypes.h:23:24: fatal error: bits/sched.h: No such file or directory compilation terminated.

如果我包含<sys/types.h>,我会回到原来的错误。 不知道如何解决这个问题。

UPDATE1 试图在我的主要开头定义它:

#include <pthread.h>
//#include <libbladeRF.h>
#include <sys/types.h>

int main()
{

pthread_mutex_t m;
return 0;
}

当我执行独立的c文件并从命令行使用gcc编译时,这实际上有效。但在项目中我得到了错误。我在创建项目时一定做错了。将再试一次。

1 个答案:

答案 0 :(得分:0)

包括&#39; pthread.h&#39;和&#39; sys / types.h&#34;头文件,你不应该看到任何问题。你可以交叉验证你正在构建这段代码的环境。

我希望你正在使用&#39; pthread&#39;编译代码时使用库(使用&#34; -lpthread&#34;选项)。