雖然使用Visual Studio 2015年用C執行的Pthread程序,我得到了以下錯誤:TIMESPEC重新定義錯誤
Error C2011 'timespec': 'struct' type redefinition
以下是我的代碼:
#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);
}
的pthread.h
頭文件包含以下與timepec相關的代碼:
#if !defined(HAVE_STRUCT_TIMESPEC)
#define HAVE_STRUCT_TIMESPEC
#if !defined(_TIMESPEC_DEFINED)
#define _TIMESPEC_DEFINED
struct timespec {
time_t tv_sec;
long tv_nsec;
};
#endif /* _TIMESPEC_DEFINED */
#endif /* HAVE_STRUCT_TIMESPEC */
No other header f我使用的是使用timespec
結構,所以沒有重新定義的機會。沒有機會損壞頭文件,因爲它已從pthread開源網站下載。
該錯誤發生在哪條線上? – user3386109
@ user3386109沒有提到的行號,當我點擊錯誤時,它正在pthreads中加載以下內容:cpp struct timespec {0} {0} {0} {0} time_t tv_sec; long tv_nsec; }; –
錯誤總是有文件名和行號。但無論如何,我會說項目文件已損壞,或系統頭文件已損壞。這兩者都不能通過互聯網進行診斷。 – user3386109