インクルードファイルでの再定義エラー
Posted: 2013年11月12日(火) 11:27
ARTK_MMD(ARToolKit)をベースにして、kinectでスケルトンを読み込んでPMDを動かしたいんですが、
VecMatQuat.h(ar側)とNuiSensor.h(kinect側)にあるVector4の構造体の記述が重複しているようです。 エラーの内容は次の通りです。
1>C:\Program Files\Microsoft SDKs\Kinect\v1.6\inc\NuiSensor.h(126): error C2371: 'Vector4' : 再定義されています。異なる基本型です。
1> c:\artk_mmd_src_no_bullet\artk_mmd_src\src\mmd\VecMatQuat.h(19) : 'Vector4' の宣言を確認してください。
VecMatQuat.hでは
struct Vector4
{
float x, y, z, w;
};
NuiSensor.hでは
#ifndef _Vector4_
#define _Vector4_
typedef struct _Vector4
{
FLOAT x;
FLOAT y;
FLOAT z;
FLOAT w;
} Vector4;
#endif _Vector4_
となっています。
名前領域を設定してみたりしてみましたが、nuiskeleton.hの方で参照エラーがでてうまくいきません。
1,ヘッダーファイルは書き換えない
2,両方の構造体を区別して利用する
できればこの2つを方針として何か解決策はないでしょうか?よろしくお願いします。
VecMatQuat.h(ar側)とNuiSensor.h(kinect側)にあるVector4の構造体の記述が重複しているようです。 エラーの内容は次の通りです。
1>C:\Program Files\Microsoft SDKs\Kinect\v1.6\inc\NuiSensor.h(126): error C2371: 'Vector4' : 再定義されています。異なる基本型です。
1> c:\artk_mmd_src_no_bullet\artk_mmd_src\src\mmd\VecMatQuat.h(19) : 'Vector4' の宣言を確認してください。
VecMatQuat.hでは
struct Vector4
{
float x, y, z, w;
};
NuiSensor.hでは
#ifndef _Vector4_
#define _Vector4_
typedef struct _Vector4
{
FLOAT x;
FLOAT y;
FLOAT z;
FLOAT w;
} Vector4;
#endif _Vector4_
となっています。
名前領域を設定してみたりしてみましたが、nuiskeleton.hの方で参照エラーがでてうまくいきません。
1,ヘッダーファイルは書き換えない
2,両方の構造体を区別して利用する
できればこの2つを方針として何か解決策はないでしょうか?よろしくお願いします。