Я пытаюсь запустить компилятор на MATLAB, но все идет не так, как ожидалось. Как правильно установить MATLAB и как я могу проверить, что именно происходит неправильно. У меня версия MATLAB r2013a.
Я сделал следующее:
-
Я загрузил файл SDK 7.1 из здесь
- папка назначения для инструментов:
C:\Program Files\Microsoft SDKs\Windows\v7.1
- папка назначения для образцов:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples
- папка назначения для инструментов:
-
Я добавил мои каталоги компилятора в среду пути
- Панель управления → Система → "Дополнительно" → "Переменные среды".
- новая системная переменная с именем "MSSdk".
- значение этой переменной: C:\Program Files\Microsoft SDK\Windows\v7.1
- закрыть и перезапустить MATLAB
Далее я попытался настроить MATLAB, выполнив следующие шаги и используя команду mex -setup
:
-
после выбора
n
по: "хотите ли вы, чтобы mex нашел установленные компиляторы", я получил список компиляторов (см. комментарий выше). Я выбрал17
:[1] Intel C++ 13.0 (with Microsoft Software Development Kit (SDK) linker) [2] Intel C++ 13.0 (with Microsoft Visual C++ 2010 linker) [3] Intel C++ 13.0 (with Microsoft Visual C++ 2012 linker) [4] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker) [5] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker) [6] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker) [7] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker) [8] Intel Visual Fortran 13 (with Microsoft Software Development Kit (SDK) linker) [9] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2010 linker) [10] Intel Visual Fortran 13.0 (with Microsoft Visual C++ 2012 linker) [11] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker) [12] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker) [13] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker) [14] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker) [15] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker) [16] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker) [17] Microsoft Software Development Kit (SDK) 7.1 [18] Microsoft Visual C++ 2005 SP1 [19] Microsoft Visual C++ 2008 SP1 [20] Microsoft Visual C++ 2010 [21] Microsoft Visual C++ 2012
-
Следующее предупреждение:
The default location for Microsoft Software Development Kit (SDK) compiler is: "C:\Program Files (x86)\Microsoft Visual Studio 10.0" but either that directory does not exist or the configuration is invalid.
-
Вопрос:
Use C:\Program Files (x86)\Microsoft Visual Studio 10.0 anyway [y]/n?
-
Я выбрал
n
и далC:\Program Files\Microsoft SDKs\Windows\v7.1
как новый каталог
здесь он останавливается:
Error: The Microsoft Windows Software Development Kit (SDK) installation is
incomplete. Please be sure that the .NET Framework is installed
correctly before attempting to reinstall the SDK.
EDIT:
Моя вторая попытка, я сделал следующее:
- Я удалил все визуальные базовые файлы (удалив все элементы, перечисленные как визуальные базовые в программах)
- Я снова установил SDK файл, но не просмотрел визуальные компиляторы С++ и Microsoft visual С++
- Примените патч от Microsoft к установке SDK 7.1 (если это еще не сделано)
- Переустановил распространяемые пакеты Visual С++ 2010: как x86, так и x64
- В MATLAB я снова использовал
mex -setup
Произошло следующее:
-
Я выбрал
y
после вопроса:Would you like mex to locate installed compilers [y]/n? [1] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files (x86)\Microsoft Visual Studio 10.0
-
Я выбрал
1
- а затем я получаю следующие 2 выхода в зависимости от выбора
y
илиn
после того, как вы спросите, правильно ли это.
я выбрано n:
mex: No compiler selected. No action taken.
**************************************************************************
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
httpx://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
Building with the -largeArrayDims option enables the new API.
**************************************************************************
Error using mex (line 206)
Unable to complete successfully.
я выбрано y:
***************************************************************************
Warning: MEX-files generated using Microsoft Windows Software Development
Kit (SDK) require that Microsoft Visual Studio 2010 run-time
libraries be available on the computer they are run on.
If you plan to redistribute your MEX-files to other MATLAB
users, be sure that they have the run-time libraries.
***************************************************************************
Trying to update options file: C:\Users\Gebruiker\AppData\Roaming\MathWorks\MATLAB\R2013a\mexopts.bat
From template: C:\PROGRA~1\MATLAB\R2013a\bin\win64\mexopts\mssdk71opts.bat
Done . . .
**************************************************************************
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the new
API. You can find more information about this at:
httpx://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
Building with the -largeArrayDims option enables the new API.
**************************************************************************
Error using mex (line 206)
Unable to complete successfully.
EDIT:
Я обнаружил, что проблема, с которой я столкнулась, кажется, изолирована от проблемы с Perl. На короткое время появляется следующее примечание:
"Perl Command Line Interpreter has stopped working"
Эта проблема имела аналогичную проблему. Я сделал следующее. Я загрузил Strawberry Perl и сделал несколько замен.
- замена всех файлов exe
-
замена файлов perl.exe
В обеих ситуациях появляется следующее сообщение
Can't locate shellwords.pl in @INC (@INC contains: C:/strawberry/perl/site/lib C:/strawberry/perl/vendor/lib C:/strawberry/perl/lib . C:\PROGRA~1\MATLAB\R2013a\bin\) at C:\Program Files\MATLAB\R2013a\bin\mex.pl line 159. Error using mex (line 206) Unable to complete successfully.
-
замена файла bin файлом bin из Strawberry Perl
'"C:\Program Files\MATLAB\R2013a\sys\perl\win32\bin\perl.exe"' is not recognized as an internal or external command, operable program or batch file. Error using mex (line 206) Unable to complete successfully.
Однако это не работает. Итак, это две вещи:
- Это не работает (только один человек утверждал, что он это сделал)
- Я заменяю неправильные файлы в MATLAB на тот, что в Strawberry Perl.
EDIT: Как было рекомендовано, я восстановил perl в matlab исходной версии.
Я загрузил Visual Studio Express 2012 и попытался выполнить эту работу. Проблемы все те же.