0

我正在构建一个 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 相同。

有任何想法吗?

4

2 回答 2

2

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

#ifndef PMCVXCOMMON_H
#define PMCVXCOMMON_H
... original content of file ...
#endif
于 2012-06-04T13:25:07.220 回答
1

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

于 2012-06-01T20:05:59.893 回答