Проблемы с установкой компилятора Matlab

Я пытаюсь запустить компилятор на 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 и попытался выполнить эту работу. Проблемы все те же.

Ответ 1

Итак, первое, что я проверил, это страница с поддержкой MATLAB:
http://www.mathworks.com/support/compilers/R2013a/index.html

Я думал, что SDK 7.1 не будет поддерживаться, но, безусловно, это так и есть даже в верхней части списка. Тем не менее, одна из ваших ошибок жаловалась на .NET, и на этой странице MATLAB существует оговорка о SDK 7.1, нуждающемся в .NET Framework 4.0 (в таблице, в нижней части ячейки SDK 7.1).

Всякий раз, когда я делал это в Windows, я всегда использовал компилятор Visual Studio. Я бы попробовал это сначала, так как не помню, что этот процесс установки mex очень длительный (до успеха/неудачи).

Ответ 2

Перед установкой Windows SDK убедитесь, что .NET Framework 4.0. Обратите внимание, что Windows 7 поставляется с .NET Framework 3.5, чего недостаточно.

Возможно, вам понадобятся следующие инструкции:

Как установить Microsoft Windows SDK 7.1?