冲突类型同一文件中的错误?

时间:2012-06-01 20:03:54

标签: c++ vxworks

我正在构建一个VxWorks映像,并且它一直挂在一个特定的.cpp文件上。这是错误:

C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:144: conflicting types for `typedef struct PMCDATA_STRUCT PMCDATA_STRUCT'
C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:144: previous declaration as `typedef struct PMCDATA_STRUCT PMCDATA_STRUCT'
C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:205: conflicting types for `typedef struct VX_DMA_MEMORY_MAP VX_DMA_MEMORY_MAP'
C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:205: previous declaration as `typedef struct VX_DMA_MEMORY_MAP VX_DMA_MEMORY_MAP'
C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:230: new declaration `struct PMCDATA_STRUCT * GetPmc(int)'
C:\\Tornado2.2\\target\\src\\pmccommon\\pmcvxcommon.h:230: ambiguates old declaration `struct PMCDATA_STRUCT * GetPmc(int)'

我之前看到过冲突的类型错误,但从未与它本身进行比较!这意味着什么?

这是pmcvxcommon.h的第127-144行:

typedef struct
{
    >>lines 129-143
}PMCDATA_STRUCT;

PMCDATA_STRUCT未在其他地方声明。对于VX_DMA_MEMORY_MAP,这是相同的。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试修改 pmcvxcommon.h 文件,如下所示:

#ifndef PMCVXCOMMON_H
#define PMCVXCOMMON_H
... original content of file ...
#endif

答案 1 :(得分:1)

我的猜测:你在给定的编译单元中多次包含该文件。