Redifinition of mxArray: error C2371

9 views (last 30 days)
AlligatorAl
AlligatorAl on 27 Aug 2013
Answered: Anthony Poulin on 18 Jul 2014
In the linking step I am getting this error:
c:\program files (x86)\matlab\r2012b\extern\include\matrix.h(301) : error C2371: 'mxArray' : redefinition; different basic types c:\program files (x86)\matlab\r2012b\simulink\include\simstruc.h(474) : see declaration of 'mxArray'
I am using VS2010 C++ compiler. The two header files seem are matlab and simulink includes, so I'm not sure why they don't play nice together.
  4 Comments
Anthony Poulin
Anthony Poulin on 3 Jul 2014
I have also the same problem. I have no problem when I compile my sfunction with visual studio 2010 C++ compiler. But I have the error when I try to generate code from my model whichn includes this S-function. Any idea?
Anthony Poulin
Anthony Poulin on 7 Jul 2014
Edited: Anthony Poulin on 7 Jul 2014
Anyone has solution? I am blocked...

Sign in to comment.

Answers (1)

Anthony Poulin
Anthony Poulin on 18 Jul 2014
I find solution, it happens because "simstruct.h" (the C s-function hearder) does not include the same headers when compiling in mexw32 (for simulation) or when compiling a model with simulink coder. It was explained in the link bellow:
My problem comes from functions include in "matrix.h", (which is not include when compiling with simulink coder), so the solution was to use only functions include both in matrix.h and rt_matrx.h

Categories

Find more on Simulink Coder in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!