Matlab 2017a не распознает компилятор (ошибка при использовании mex. Не найден поддерживаемый компилятор или SDK)

Я пытаюсь скомпилировать несколько файлов .cpp из файлового обмена. Я установил Microsoft Visual Studio 2017 в соответствии с инструкциями здесь (так же, как и с настоящим компилятором C++).

Эти компоненты установлены:

введите здесь описание изображения

Когда я запускаю mex setup -v, я получаю вывод, по-видимому, указывающий, что некоторые вещи были найдены (перед этим текстом была пара строк, в которых говорилось «ищу компилятор»… «Нет»):

... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 14.0\').
... Looking for file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe' ...Yes.
... Looking for folder 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC' ...Yes.
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1' InstallationFolder ...Yes ('C:\Program Files (x86)\Windows Kits\8.1\').
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 14.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 14.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 14.0\').
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7' 14.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7' 14.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\').
... Looking for environment variable 'VS140COMNTOOLS' ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\').
... Looking for file 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe' ...No.
Did not find installed compiler 'Microsoft Visual C++ 2015 Professional (C)'.
... Looking for compiler 'Microsoft Visual C++ 2017 (C)' ...
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7' 15.0 ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7' 15.0 ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\').
... Executing command 'set "vcroot=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"&for /f "delims= " %a in ('type "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt"') do @if exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\%a\bin\HostX64\x64\cl.exe" call echo %vcroot%' ...Yes ('C:\Program Files (x86)\Microsoft Visual Studio\2017\Community').
... Looking for registry setting 'HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0' InstallationFolder ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0' InstallationFolder ...No.
... Looking for registry setting 'HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0' InstallationFolder ...No.
... Looking for registry setting 'HKCU\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0' InstallationFolder ...No.
Did not find installed compiler 'Microsoft Visual C++ 2017 (C)'.

Обратите внимание, что есть несколько строк, которые заканчиваются на «да», где он находит каталоги, которые использует Visual Studio. Но затем это заканчивается этой ошибкой, которая говорит, что компилятор не найден:

Error using mex
No supported compiler or SDK was found.

Очевидно, с этим были связаны две ошибки (1, 2), и я применил эти исправления. Но потом все равно получаю ту же ошибку. Как заставить Matlab распознать компилятор?! Это сводит с ума.

Эта проблема возникает с сообществом Windows 10, Matlab 2017a и Visual Studio 2017, которые должны быть совместимы в соответствии с здесь . Кто-нибудь знает, как заставить это работать?

По этому поводу много вопросов как на нескольких биржах стека, так и на форуме Matlab. Все решения подразумевают проверку совместимости или применение исправлений ошибок, как описано выше. Эти вещи я уже пробовал, поэтому я спрашиваю здесь сейчас.


person Leo    schedule 24.05.2018    source источник
comment
пожалуйста, объясните, если вы минусуете   -  person Leo    schedule 25.05.2018
comment
Похоже, вам нужен Windows 10 SDK. Это должно быть опцией в программе установки.   -  person Retired Ninja    schedule 25.05.2018
comment
О, чувак, это звучит логично. Изменение установки сейчас. Спасибо что подметил это.   -  person Leo    schedule 25.05.2018
comment
На этой странице поддержки компилятора, на которую вы ссылаетесь, говорится, что 2017a не имеет готовой поддержки Visual Studio 2017, но предоставляет ссылка на патч, добавляющий поддержку   -  person Ben Voigt    schedule 25.05.2018


Ответы (1)


Итак, ответ состоял в том, чтобы установить оба этих компонента визуальной студии:

  • Windows 10 SDK (необходимо получить версию, соответствующую вашей Windows!)

  • Инструменты VС++ 2017 v141

В дополнение к применению этого исправления:

Трудно найти эту информацию, надеюсь, это поможет людям.

person Leo    schedule 25.05.2018