MATLAB: Does the MEX command not parse argument -D with ‘*’ correctly

argumentasteriskdMATLABmex

I am using MEX with the '-D' flag to define the constant ELEMENT_OPERATOR and would like to define this constant to be *. When compiling a C++ mex file, I run the following command:
mex mexfun.cc -DELEMENT_TYPE=int64 -DELEMENT_OPERATOR=* -output times -v
but MATLAB errors out with the following message:
fatal error C1189: #error : ELEMENT_OPERATOR must be defined !
However, replacing '*' with '+' works fine.

Best Answer

The ability to pass "*" with the -D flag with the MEX command is not available in MATLAB 7.9 (R2009b).
This is because '*' is treated as a wildcard character in MEX script.
To work around the issue, you can add a macro
#define symbol *
line in the source code.