VS 2010 MATLAB 2012b でコードを MEX しようとすると、このエラーが発生します
c:\users\krzysztof\desktop\libocas_v096\libocas_v096\sparse_mat.h(27): エラー C2371: 'mxArray': 再定義; 異なる基本型 c:\program files\matlab\r2012b\extern\include\matrix.h(293) : 'mxArray' の宣言を参照
コードには、matrix.h を含む #include が含まれています
別のコードには、matrix.h 型を再定義する sparse_mat.h が含まれます。
typedef struct {
INDEX_TYPE_T *ir;
INDEX_TYPE_T *jc;
INDEX_TYPE_T m;
INDEX_TYPE_T n;
double *pr;
NNZ_TYPE_T nzmax;
int sparse;
} mxArray;
このエラーを取り除く方法はありますか?? GCC はこのコードをコンパイルします。
クシシュトフ
それは293行目について不平を言います。この行でmatrix.hの以下の部分
#ifndef MATHWORKS_MATRIX_MXARRAY_PUB_FWD_H
#define MATHWORKS_MATRIX_MXARRAY_PUB_FWD_H
/* Copyright 2008 The MathWorks, Inc. */
/**
* Published incomplete definition of mxArray
*/
typedef struct mxArray_tag mxArray; <--- line 293
#endif /* MATHWORKS_MATRIX_MXARRAY_PUB_FWD_H */