Как установить компилятор C/C++ для Matlab?

я прочитал несколько тем по этому вопросу... но я все еще не могу понять. У меня есть Matlab 2013 и «MS Visual C++ 2012 Redistributable», оба x86/x64, установленные в Windows 8. Когда я запускаю «mex -setup» в Matlab, появляется следующее сообщение:

Пожалуйста, выберите компилятор для сборки MEX-файлов:

Вы хотите, чтобы mex находил установленные компиляторы [y]/n? у

На этом компьютере не найден поддерживаемый SDK или компилятор. Список поддерживаемых компиляторов см. на
http://www.mathworks.com/support/compilers/R2013a/win64.html

но предлагаемый файл предназначен для установки .NET 4 для Windows 7, а у меня Windows 8. Однако, хотя я устанавливаю эту платформу, команда mex -setup по-прежнему не работает.


person user2614596    schedule 13.09.2014    source источник


Ответы (1)


Кажется, это все еще проблема, не имеющая прямого решения. Мне потребовалось много поисков, чтения, проб и ошибок, чтобы компилятор распознавался mex.

Короче говоря, Matlab 2013 не поддерживает Windows 8 SDK, но Windows 7 SDK не устанавливается (легко) в Windows 8.

Что сработало для меня:

Win7 SDK не устанавливается в Windows 8, поскольку более поздние версии распространяемого пакета Visual C++ 2010 уже установлены по умолчанию в Windows 8. Вам необходимо вручную (из панели управления/программ/удаления...) удалить все варианты Распространяемый компонент VC++2010 (x86 и x64).

Подробнее о том, как это сделать, см. в этой статье Microsoft.

После этого я смог установить SDK для win7 и заставить компилятор распознаваться mex.


Примечание:

Я работаю на 32-битной Win8, поэтому то, что сработало для меня, может не подойти всем. Во время моих поисков по теме я также заметил, что многие люди часто натыкались на 2 другие неудачи:

  • Во время установки Win 7 SDK .NET 4 не устанавливается. => Это связано с тем, что .net4.5 уже поставляется в Windows 8. Опять же, удалите .net4.5, а затем переустановите win7 SDK. (можно даже переустановить .net4.5 при необходимости после того, как все будет сделано).

  • После того, как все установлено и mex успешно нашел компилятор, во время компиляции возникает ошибка, связанная с отсутствующим ammintrin.h. Возможно, вам придется установить MS Visual Studio C++ 2010 Express, а затем обновить его до SP1. В этом случае следуйте подробным инструкциям в этом Центральная статья о Matlab.

Эта последняя связанная статья, кажется, предлагает полное решение, я не упомянул ее в своем ответе, потому что в некоторых случаях (например, в моем случае) была необходима только часть описанной установки, поэтому не было смысла удалять/переустанавливать куча вещей. Но будьте готовы, что вам, возможно, придется пройти через все это...

person Hoki    schedule 13.09.2014