Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting up mex to use the Visual Studio 2010 compiler

I have Visual Studio 2010 installed. However, MATLAB doesn't find the compiler.

>> mex -setup
Please choose your compiler for building external interface (MEX) files: 

Would you like mex to locate installed compilers [y]/n? y

Select a compiler: 

[0] None 

Compiler:

If I answer n to the question, I get the following

Would you like mex to locate installed compilers [y]/n? n

Select a compiler: 
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker) 
[2] Intel C++ 9.1 (with Microsoft Visual C++ 2005 SP1 linker) 
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker) 
[4] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker) 
[5] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker) 
[6] Microsoft Visual C++ 2005 SP1 
[7] Microsoft Visual C++ 2008 Express 
[8] Microsoft Visual C++ 2008 SP1 

[0] None 

Compiler: 8

The default location for Microsoft Visual C++ 2008 SP1 compilers is C:\Program Files (x86)\Microsoft Visual Studio 9.0, 
but that directory does not exist on this machine.  

Use C:\Program Files (x86)\Microsoft Visual Studio 9.0 anyway [y]/n? n
Please enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 9.0] 

What is the easiest way to compile my c++ code to make it available in MATLAB? Install Visual C++ 2008? oO

like image 853
Etan Avatar asked Nov 02 '10 13:11

Etan


2 Answers

It depends on what MATLAB version you are using. R2010b supports VS2010 out of the box. If you have R2010a, there is a patch available:

  • Update From the World of MEX: Visual Studio 2010 Support
  • How can I use Microsoft Visual C++ 2010 to create MEX files with MATLAB 7.10 (R2010a)?
like image 163
Amro Avatar answered Nov 14 '22 01:11

Amro


There are more than 1 ways of working around your problem, and only one involves money :)

  1. Buy/Upgrade to a new Matlab version (R2010b recognizes and works with VS2010).
  2. You don't have to install the full VS2008 package, the old Windows SDK v7.0 is enough. Once installed, matlab should recognize is when you do a mbuild -setup.
  3. As you yourself suggested, install VS2008.

For future reference: http://www.mathworks.com/support/compilers/R2010b/index.html

like image 23
rubenvb Avatar answered Nov 14 '22 02:11

rubenvb