MATLAB mex on Linux: Using C++ style comments in C mex files
I recently spent a lot of time optimizing a MATLAB user’s code and made extensive use of mex files written in C. Now, one of the habits I have gotten into is to mix C and C++ style comments in my C source code like so:
/* This is a C style comment */ // This is a C++ style comment
For this particular project I did all of the development on Windows 7 using MATLAB 2011b and Visual Studio 2008 which had no problem with my mixing of comments. Move over to Linux, however, and it’s a very different story. When I try to compile my mex file
mex block1.c -largeArrayDims
I get the error message
block1.c:48: error: expected expression before ‘/’ token
The fix is to call mex as follows:
mex block1.c -largeArrayDims CFLAGS="\$CFLAGS -std=c99"
Hope this helps someone out there. For the record, I was using gcc and MATLAB 2011a on 64bit Scientific Linux.
That’s a very helpful point, but I’ll add something there. You can edit your compiler options if you enter your home directory, then find the fiile .matlab/MATLAB_VERSION/mexopts.sh and edit it. In there you’ll find the compiler options for each architecture. Just edit the options for the architecture you’re using. Particularly, I find useful that I can change the compiler options and add my favourite optimisation parameters. :)
Very Helpful.
Just what I needed! Thanks! :-)