Как направить настройку mex MATLAB в Microsoft Windows SDK для компиляции C++? (ошибка в установке местоположения)

Я на Windows Vista и хочу использовать MATLAB для компиляции C++ функций. У меня в системе был только lcc compiler, как видно при запуске 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/R2011a/win32.html 
Please choose your compiler for building MEX-files: 
Would you like mex to locate installed compilers [y]/n? y
Select a compiler: 
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2011a\sys\lcc 
[0] None 
Compiler:

поскольку lcc не работает для C++, я установил Windows SDK 7.1 с здесь(сайт Windows). Я запустил Windows SDK 7.1 Command Prompt, чтобы увидеть каталог, в который он установлен, и увидеть C:\Program Files\Microsoft SDKs\Windows\v7.1. Затем я снова запускаю mex -setup, чтобы установить для компилятора значение Microsoft Visual C++ 2010, указав mex не находить установленные компиляторы, я выбираю параметр Microsoft Visual C++ 2010, а затем MATLAB по умолчанию ищет путь для Visual Studio; C:\Program Files\Microsoft Visual Studio 10.0. Я пытаюсь переопределить его, но там это не работает. Вот точные действия:

>> 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/R2011a/win32.html 
Please choose your compiler for building MEX-files: 
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 Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker) 
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker) 
[4] Lcc-win32 C 2.4.1 
[5] Microsoft Visual C++ 6.0 
[6] Microsoft Visual C++ 2005 SP1 
[7] Microsoft Visual C++ 2008 SP1 
[8] Microsoft Visual C++ 2010 
[9] Microsoft Visual C++ 2010 Express 
[10] Open WATCOM C++ 
[0] None 
Compiler: 8
Warning: The default location for Microsoft Visual C++ 2010 compiler is: 
     "C:\Program Files\Microsoft Visual Studio 10.0" 
     but either that directory does not exist or the configuration 
     is invalid. 
Use C:\Program Files\Microsoft Visual Studio 10.0 anyway [y]/n? n
Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 10.0] 
C:\Program Files\Microsoft SDKs\Windows\v7.1
Please verify your choices: 
Compiler: Microsoft Visual C++ 2010  
Location: C:\Program Files\Microsoft Visual Studio 10.0 
Are these correct [y]/n?  
***************************************************************************** 
Error: Microsoft Visual C++ 2010 requires the Microsoft Windows Software  
     Development Kit (SDK), but the SDK cannot be found.  Examine your   
     Microsoft Visual C++ 2010 installation. 
*****************************************************************************  
??? Error using ==> mex at 208
Unable to complete successfully.

Я не знаю, должен ли каталог отличаться от C:\Program Files\Microsoft SDKs\Windows\v7.1, и есть ли способ идентифицировать этот каталог. Я также не знаю, правильный ли способ, которым я даю каталог. Я попытался использовать одинарные кавычки вокруг имени каталога, и единственный вариант заключается в том, что он останавливается, чтобы спросить меня, правильный ли каталог для визуальной студии или нет, я отвечаю n, и дается только это.

Compiler: Microsoft Visual C++ 2010  
Location: C:\Program Files\Microsoft Visual Studio 10.0 
Are these correct [y]/n? n
mex: No compiler selected. No action taken. 

Как я могу добавить компилятор в MATLAB, чтобы иметь возможность запускать mex в функциях/файлах С++?


person Vass    schedule 08.04.2013    source источник


Ответы (1)


Если вам нужен быстрый и простой подход (и вы не используете 64-битный Matlab), я бы посоветовал вам загрузить бесплатную копию Visual Studio 2010 C++ Express и использовать ее. Таким образом, mex -setup обнаружит его.

person Alan    schedule 08.04.2013
comment
Похоже, это сработает. - person Alan; 08.04.2013
comment
Trying to update options file: C:\Users\Alex\AppData\Roaming\MathWorks\MATLAB\R2011a\mexopts.bat Из шаблона C:\PROGRA~1\MATLAB\R2011a\bin\win32\mexopts\msvc100freeopts.bat Готово . . . ` и компиляция проходит без ошибок. Не элегантное решение, потому что у меня на диске есть эта коренастая штука, но, тем не менее, она работает! - person Vass; 08.04.2013