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 に答える