2010-11-02 4 views
10

У меня установлена ​​Visual Studio 2010. Однако MATLAB не находит компилятор.Настройка mex для использования компилятора Visual Studio 2010

>> 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: 

Если я отвечу n на вопрос, я получаю следующее

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] 

Что является самым простым способом компиляции моего C++ кода, чтобы сделать его доступным в MATLAB? Установить Visual C++ 2008? оо

ответ

2

Есть более 1 способы работы вокруг проблемы, и только один включают в себя деньги :)

  1. Покупка/обновление до новой версии Matlab (R2010b распознает и работает с VS2010).
  2. Вам не нужно устанавливать полный пакет VS2008, достаточно старого Windows SDK v7.0. После установки, Matlab должен распознать, когда вы делаете mbuild -setup.
  3. Как вы сами предложили, установите VS2008.

Для дальнейшего использования: http://www.mathworks.com/support/compilers/R2010b/index.html

+0

загрузит версию R2010b из моего университета ... – Etan

0

Вы также можете сделать свой C++ код доступен для Matlab без использования Mex. Matlab способен загружать внешние DLL и вызывать их функции. Таким образом, вы можете обернуть свой код в DLL и полностью обойти mex.

Как правило, я нашел, что это более простой способ вызова кода C или C++ из Matlab. Недостатком является то, что у вас не будет всех возможностей для манипулирования структурами данных Matlab, которые предоставляет mex. Вы все равно можете передавать данные взад и вперед, некоторые вещи более громоздки, такие как выделение массива на C и предоставление права собственности на него в matlab.

+0

Я хотел бы предложить процедуру, описанную в [Компиляция MEX файлы Visual Studio] (http://www.orangeowlsolutions.com/news) для компиляции mex-файлов непосредственно в Visual Studio. Эта процедура протестирована для Visual Studio 2010, Matlab 2010a и 64-битной целевой платформы Intel. На этой веб-странице вы можете найти «шаблонный» проект Visual Studio, который вы можете скачать и использовать в качестве ссылки для своих собственных. Почему вы говорите, что существуют ограничения? Я не сразу нашел причину, по которой вы не могли компилировать mex-файлы в Visual Studio со всеми функциями mex. – JackOLantern

Смежные вопросы