首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual错误--带有timespec结构

Visual错误--带有timespec结构
EN

Stack Overflow用户
提问于 2015-10-14 00:00:33
回答 5查看 9.4K关注 0票数 9

在使用Visual 2015在C中执行P线程程序时,我得到了以下错误:

Error C2011 'timespec':'struct‘类型重定义

以下是我的代码:

代码语言:javascript
复制
#include<pthread.h>
#include<stdlib.h>
#include<stdio.h>


void *calculator(void *parameter);

int main(/*int *argc,char *argv[]*/)
{
    pthread_t thread_obj;
    pthread_attr_t thread_attr;
    char *First_string = "abc"/*argv[1]*/;
    pthread_attr_init(&thread_attr);
    pthread_create(&thread_obj,&thread_attr,calculator,First_string);
        
}
void *calculator(void *parameter)
{
    int x=atoi((char*)parameter);
    printf("x=%d", x);
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-11-16 10:56:07

添加此编译器标志:

代码语言:javascript
复制
-DHAVE_STRUCT_TIMESPEC
票数 8
EN

Stack Overflow用户

发布于 2018-04-07 08:15:26

尽管这个问题已经得到了正确的回答,但也有另一种解决办法。

首先,出现问题是因为pthreads-win32内部包含已声明timespec structtime.h

为了避免这一错误,我们应该做的唯一一件事是:

代码语言:javascript
复制
#define HAVE_STRUCT_TIMESPEC
#include <pthread.h>
票数 8
EN

Stack Overflow用户

发布于 2016-06-03 08:36:41

在Visual 2015中编译包含MariaDB 10头文件的程序时也会出现同样的问题(见10.1.14)。

这里的解决方案是定义以下内容:

代码语言:javascript
复制
STRUCT_TIMESPEC_HAS_TV_SEC
STRUCT_TIMESPEC_HAS_TV_NSEC
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33114535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档