MATLAB: Mex cannot find tmwtypes.h, “fatal error C1083: Cannot open include file”, but it is in path

compilemextmwtypes

I am trying to compile libsvm for my Matlab 2011b. However, when I do, I get this error:
>> make
libsvmread.c
c:\program files\matlab\r2011b\extern\include\matrix.h(294) : fatal error C1083: Cannot open include file: 'tmwtypes.h': No such file or directory
C:\PROGRA~1\MATLAB\R2011B\BIN\MEX.PL: Error: Compile of 'libsvmread.c' failed.
If make.m fails, please check README about detailed instructions.
I have looked in the folder C:\program files\matlab\r2011b\extern\include and tmwtypes.h is in there. I have also checked that this folder is in my Matlab Path.
I then tried mex -setup:
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2011b/win64.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0
[2] Microsoft Visual C++ 2010 Express in C:\Program Files (x86)\Microsoft Visual Studio 10.0
[0] None
Compiler: 1
Please verify your choices:
Compiler: Microsoft Software Development Kit (SDK) 7.1
Location: C:\Program Files (x86)\Microsoft Visual Studio 10.0
Are these correct [y]/n? y
***************************************************************************
Warning: MEX-files generated using Microsoft Windows Software Development
Kit (SDK) require that Microsoft Visual Studio 2010 run-time
libraries be available on the computer they are run on.
If you plan to redistribute your MEX-files to other MATLAB
users, be sure that they have the run-time libraries.
***************************************************************************
Trying to update options file: C:\Users\windows\AppData\Roaming\MathWorks\MATLAB\R2011b\mexopts.bat
From template: C:\PROGRA~1\MATLAB\R2011b\bin\win64\mexopts\mssdk71opts.bat
Done . . .
**************************************************************************
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
http://www.mathworks.com/support/solutions/en/data/1-5C27B9/?solution=1-5C27B9
Building with the -largeArrayDims option enables the new API.
**************************************************************************
I seem to have 2 compilers. I have tried using both and then redoing the make and it still throws the same error.
Also note that this problem is not exclusive to libsvm, trying to compile any c file causes this same error for me, ie: mex test_c_code.c.
I have also tried modifying the tmwtypes.h in matrix.h to "tmwtypes.h", but it did not chance the error.
I am running 64 bit windows 7, if that helps.

Best Answer

As a temporary workaround, try copying tmwtypes.h to your current directory just to see if it is a directory problem.
Related Question