C2371 : 'mxArray' : redefinition; different basic types

标签 c matlab compiler-construction

我尝试使用 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”的声明

代码包含#include,其中包含matrix.h

另一段代码包括sparse_mat.h,它重新定义了matrix.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 */

最佳答案

尝试包含 header “mex.h”而不是“matrix.h”

关于C2371 : 'mxArray' : redefinition; different basic types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149234/

相关文章:

java - String类以及Java对其的依赖

c - 变量的地址与 gdb 中不匹配

C编程: Forward variable argument list

matlab - Simulink 中的多 channel 音频输出

matlab - 在 Matlab 中,使用 length(x) 时出错,给出下标索引错误

java - 反汇编 Java JIT 编译的原生字节码

c++ - 即使有 new 和 delete,Functor 构造和开销也为零?

C - 套接字网络 - 字符串不会产生相等性

c - 有什么神秘的事情发生吗?

matlab - 提高 App Designer UI 元素的刷新率