我正在构建一个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,这是相同的。
有什么想法吗?
答案 0 :(得分:2)
尝试修改 pmcvxcommon.h 文件,如下所示:
#ifndef PMCVXCOMMON_H
#define PMCVXCOMMON_H
... original content of file ...
#endif
答案 1 :(得分:1)
我的猜测:你在给定的编译单元中多次包含该文件。