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

я пытаюсь запустить компилятор на MATLAB, но все идет не так, как ожидалось. Как я могу правильно установить MATLAB и как я могу проверить, что происходит. У меня есть версия MATLAB r2013a.

я сделал следующее:

  1. я загрузил файл SDK 7.1 из здесь

    • папка назначения для средств: C:Program FilesMicrosoft SDKsWindowsv7.1
    • папка назначения для образцов: C:Program FilesMicrosoft SDKsWindowsv7.1Samples
  2. я добавил свои каталоги компилятора в среду path

    • Панель управления -> Система -> "Дополнительно" -> "переменные среды".
    • новая системная переменная с именем "MSSdk".
    • значение этой переменной: C:Program файлыMicrosoft SDKsWindowsv7.1
    • закройте и перезапустите MATLAB

затем я попытался настроить MATLAB, используя следующие шаги и использование :

  • после выбора 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 FilesMicrosoft SDKsWindowsv7.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:

свою вторую попытку я сделал следующим образом:

  • я удалил все файлы visual basic (удалив все элементы, перечисленные как visual basic в программах)
  • я снова установил файл SDK, но uncheked компиляторы visual C++ и Microsoft visual C++
  • применить патч из Microsoft в SDK 7.1 установка (если еще не сделано)
  • переустановил распространяемые пакеты Visual C++ 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:UsersGebruikerAppDataRoamingMathWorksMATLABR2013amexopts.bat 
From template:              C:PROGRA~1MATLABR2013abinwin64mexoptsmssdk71opts.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"

этой в должности была аналогичная проблема. Я последовал его примеру. Я скачал Клубничный 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~1MATLABR2013abin) at C:Program FilesMATLABR2013abinmex.pl line 159. 
    Error using mex (line 206)
    Unable to complete successfully.
    
  • замена файла bin на файл bin из Strawberry Perl

    '"C:Program FilesMATLABR2013asysperlwin32binperl.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 и пытаюсь сделать эту работу. Проблемы все те же.

2 ответов


Итак, первое, что я проверил, это страница поддерживаемых компиляторов 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 занимал очень много времени (до успеха/неудачи).


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

вы можете найти следующие полезные инструкции:

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