exponenta event banner

MCC

Компиляция функций MATLAB для развертывания

Описание

Общее использование

mcc options mfilename1 mfilename2...mfilenameN компилирует функции в соответствии с параметрами. Используемые варианты зависят от предполагаемых результатов компиляции.

Для получения информации о компиляции:

  • Общие библиотеки C/C + +, сборки .NET, пакеты Java ® или Python ®, см.mcc (MATLAB Compiler SDK) для компилятора MATLAB ® SDK™

  • MATLAB Производственные Server™ развертываемые архивы или надстройки Excel ® для сервера MATLAB Production Server, см.mcc(Производственный сервер MATLAB) для SDK компилятора MATLAB

Автономное приложение

пример

mcc -m options mfilename компилирует функцию в автономное приложение.

Это эквивалентно mcc -W main -T link:exe.

пример

mcc -e options mfilename компилирует функцию в автономное приложение, которое не открывает командную строку Windows ® при выполнении. -e работает только в операционных системах Windows.

Этот синтаксис эквивалентен -W WinMain -T link:exe.

Надстройка Excel

пример

mcc -W 'excel:addin_name,className,version=version_number' -T link:lib options mfilename1 mfilename2...mfilenameN создает надстройку Microsoft ® Excel из указанных файлов.

  • addin_name - имя надстройки.

  • className - указывает имя создаваемого класса. Если имя класса не указано, mcc использует addin_name по умолчанию. Если указано, className должно отличаться от mfilename.

  • version_number - Указывает номер версии файла надстройки как major.minor.bug.build в файловой системе. Указывать номер версии не требуется. Если номер версии не указан, mcc устанавливает номер версии на 1.0.0.0 по умолчанию.

    • major - указывает основной номер версии. Если число не указано, mcc наборы major кому 0.

    • minor - Указывает дополнительный номер версии. Если число не указано, mcc наборы minor кому 0.

    • bug- указывает номер выпуска обновления для исправления ошибок. Если число не указано, mcc наборы bug кому 0.

    • build- Указывает номер сборки. Если число не указано, mcc наборы build кому 0.

    Примечание

    Надстройки Excel можно создавать только в MATLAB под управлением Windows.

    Примечание

    Удаление отдельных кавычек вокруг 'excel:addin_name,className,version' при выполнении mcc из запроса DOS.

Приложения MapReduce на Hadoop

mcc -H -W hadoop:archiveName,CONFIG:configFile mfilename создает развертываемый архив из mfilename который может быть выполнен как задание компанией Hadoop ®.

Совет

Вы можете выпустить mcc либо в командной строке MATLAB, либо в командной строке системы Windows или Linux ®.

Моделирование Simulink (требуется компилятор Simulink)

пример

mcc -m options mfilename компилирует приложение MATLAB, содержащее моделирование Simulink ®, в автономное приложение. Дополнительные сведения см. в разделе Создание и развертывание сценария с помощью компилятора Simulink (Simulink Compiler).

Примеры

Создание автономного приложения

mcc -m magic.m

Создание автономного приложения, не открывающего командную оболочку (только для Windows)

mcc -e magic.m

Создание автономного приложения с номером версии файла системного уровня (только для Windows)

Создание автономного приложения в Windows с номером версии 3.4.1.5.

mcc -W 'main:mymagic,version=3.4.1.5' -T link:exe mymagic.m

Создание надстройки Excel

mcc -W 'excel:myAddin,myClass,1.0' -T link:lib magic.m

Создание надстройки Excel с номером версии файла системного уровня (только для Windows)

Создание надстройки Excel в Windows с номером версии 5.2.1.7.

mcc -W 'excel:myAddin,myClass,version=5.2.1.7' -T link:lib -b mymagic.m

Создание надстройки Excel для производственного сервера MATLAB

mcc -W 'mpsxl:myDeployableArchvie,myExcelClass,version=1.0' -T link:lib mymagic.m

Создание автономного приложения для моделирования Simulink (требуется компилятор Simulink)

Чтобы создать автономное приложение для моделирования Simulink, выполните следующие действия.

Создайте модель Simulink с помощью Simulink. В этом примере используется модель sldemo_suspn_3dof это корабль с Симулинком.

Создайте приложение MATLAB, использующее API из Simulink Compiler™ для моделирования модели. Дополнительные сведения см. в разделе Развертывание симуляций с настраиваемыми параметрами (компилятор Simulink).

function deployParameterTuning(outputFile, mbVariable)
 
    if ischar(mbVariable) || isstring(mbVariable)
        mbVariable = str2double(mbVariable);
    end
     
    if isnan(mbVariable) || ~isa(mbVariable, 'double') || ~isscalar(mbVariable)
        disp('mb must be a double scalar or a string or char that can be converted to a double scalar');
    end
     
    in = Simulink.SimulationInput('sldemo_suspn_3dof');   
    in = in.setVariable('Mb', mbVariable);
    in = simulink.compiler.configureForDeployment(in);
    out = sim(in);
     
    save(outputFile, 'out');
  
end

Использовать mcc для создания автономного приложения из приложения MATLAB.

mcc -m deployParameterTuning.m

Входные аргументы

свернуть все

Файл для компиляции, указанный как вектор символов или скаляр строки.

Один или несколько файлов для компиляции, указанных как разделенный пробелом список имен файлов.

Параметры настройки вывода, заданные как список векторов символов или строковых скаляров.

  • -a

    Добавление файлов в развертываемый архив с помощью -a path для указания добавляемых файлов. Несколько -a разрешены опции.

    Если имя файла указано с помощью -a, компилятор ищет эти файлы по пути MATLAB, поэтому указание полного пути необязательно. Эти файлы не передаются mbuild, чтобы можно было включать такие файлы, как файлы данных.

    Если имя папки указано с помощью -a все содержимое этой папки рекурсивно добавляется в развертываемый архив. Например,

    mcc -m hello.m -a ./testdir 

    указывает, что все файлы в testdir, а также все файлы в его подпапках добавляются в развертываемый архив. Поддерево папки в testdir сохраняется в развертываемом архиве.

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

    mcc -m hello.m -a ./testdir/*

    указывает, что все файлы в ./testdir добавляются к развертываемому архиву и подпапкам в ./testdir не обрабатываются рекурсивно.

    mcc -m hello.m -a ./testdir/*.m

    указывает, что все файлы с расширением .m под ./testdir добавляются в развертываемый архив и подпапки ./testdir не обрабатываются рекурсивно.

    Примечание

    * является единственным поддерживаемым подстановочным знаком.

    При добавлении файлов в архив с помощью -a , которые не появляются в пути MATLAB во время компиляции, запись пути добавляется в путь выполнения приложения, чтобы они появлялись в пути при выполнении развернутого кода.

    При использовании -a параметр для указания полного пути к ресурсу, базовый путь сохраняется, с некоторыми изменениями, но относительно подкаталога каталога кэша среды выполнения, а не локальной папки пользователя. Каталог кэша создается из развертываемого архива при первом выполнении приложения. Вы можете использовать isdeployed определить, выполняется ли приложение в развернутом режиме, и соответствующим образом скорректировать путь. -a опция также создает .auth файл для целей авторизации.

    Внимание

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

    Примечание

    Если вы используете -a флаг для включения пользовательских классов Java, автономные приложения работают без необходимости изменения classpath если класс Java не является членом пакета. То же самое относится и к JAR-файлам. Однако если добавляемый класс является членом пакета, код MATLAB должен выполнить соответствующий вызов javaaddpath для обновления classpath с родительской папкой пакета.

  • -b

    Создание файла Visual Basic ® (.bas), содержащий интерфейс Microsoft Excel Formula Function с COM-объектом, созданным компилятором MATLAB. При импорте в рабочую книгу кода Visual Basic этот код позволяет рассматривать функцию MATLAB как функцию формулы ячейки.

  • -B

    Замените файл на mcc с содержимым указанного файла. Использовать

    -B filename[:<a1>,<a2>,...,<an>]
    

    Связка filename должен содержать только mcc параметры командной строки и соответствующие аргументы и/или другие имена файлов. Файл может содержать другое -B варианты. Пакет может включать параметры замены для параметров компилятора, которые принимают имена и номера версий. См. раздел Использование пакетов для построения кода MATLAB (MATLAB Compiler SDK).

  • -c

    При использовании совместно с -l подавляет компиляцию и связывание сгенерированного кода оболочки C. -c параметр не может использоваться независимо от -l вариант.

  • -C

    Не встраивайте развертываемый архив в двоичные файлы.

    Примечание

    -C флаг игнорируется для библиотек Java.

  • -d

    Поместите вывод в указанную папку. Использовать

    -d outFolder
    

    для направления созданных файлов в outFolder. Указанная папка уже должна существовать.

  • -e

    Использовать -e вместо -m позволяет создать автономное приложение Windows, которое не открывает командную строку Windows при выполнении. -e эквивалентно -W WinMain -T link:exe.

    Этот параметр работает только в операционных системах Windows.

  • -f

    Переопределите файл параметров по умолчанию указанным файлом параметров. Это относится, в частности, к общим библиотекам C/C + +, COM и целевым объектам Excel. Использовать

    -f filename
    

    определить filename в качестве файла параметров при вызове mbuild. Этот параметр позволяет использовать различные компиляторы ANSI для различных вызовов компилятора. Эта опция является прямой передачей mbuild.

  • -g, -G

    Включить информацию об отладочных символах для кода C/C + +, созданного SDK компилятора MATLAB. Это также вызываетmbuild для передачи соответствующих флагов отладки системному компилятору C/C + +. Опция отладки позволяет выполнить обратную трассировку до точки, в которой можно определить, произошел ли сбой при инициализации среды выполнения MATLAB, вызова функции или процедуры завершения. Этот параметр не позволяет отладить файлы MATLAB с помощью отладчика C/C + +.

  • -I

    Добавьте новый путь к папке в список включенных папок. Каждый -I добавляет папку в конец списка путей для поиска. Например,

    -I <directory1> -I <directory2>
    

    устанавливает путь поиска таким образом, чтобы directory1 сначала выполняется поиск файлов MATLAB, а затем directory2. Этот параметр важен для автономной компиляции, когда путь MATLAB недоступен.

    Если используется совместно с -N опция, -I добавляет папку к пути компиляции в том же месте, где она появилась в пути MATLAB, а не в начале пути.

  • -K

    Прямой mcc не удалять выходные файлы, если компиляция заканчивается преждевременно из-за ошибки.

    Поведение по умолчанию mcc используется для удаления любых частичных выходных данных в случае неуспешного выполнения команды.

  • -m

    Прямой mcc для создания автономного приложения.

  • -M

    Определение параметров времени компиляции. Использовать

    -M string
    

    пройти string непосредственно в mbuild. Этот параметр обеспечивает полезный механизм для определения параметров времени компиляции, например: -M "-Dmacro=value".

    Примечание

    Несколько -M опции не накапливаются; только самый правый -M используется опция.

    Передача таких параметров, как /bigobj, разграничить строку в соответствии с вашей платформой.

    ПлатформаСинтаксис

    MATLAB

    -M 'COMPFLAGS=$COMPFLAGS /bigobj'
    Командная строка Windows
    -M COMPFLAGS="$COMPFLAGS /bigobj"
    

    Командная строка Linux и macOS

    -M CFLAGS='$CFLAGS /bigobj'
  • -n

    -n параметр автоматически идентифицирует числовые входные данные командной строки и обрабатывает их как двойные значения MATLAB.

  • -N

    Прохождение -N очищает путь ко всем папкам, за исключением следующих основных папок (этот список может изменяться с течением времени):

    • matlabroot\toolbox\matlab

    • matlabroot\toolbox\local

    • matlabroot\toolbox\compiler

    • matlabroot\toolbox\shared\bigdata

    Прохождение -N также сохраняет все вложенные папки в этом списке, которые появляются в пути MATLAB во время компиляции. Включая -N в командной строке можно заменить папки из исходного пути с сохранением относительного порядка включенных папок. Также включаются все подпапки включенных папок, которые отображаются на исходном пути. Кроме того, -N сохраняет все папки, включенные в путь, которые не находятся в matlabroot\toolbox.

    При использовании –N , используйте –I опция принудительного включения папки, которая помещается в начало пути компиляции. Используйте –p возможность условно включать папки и их подпапки; если они присутствуют в пути MATLAB, они отображаются в пути компиляции в том же порядке.

  • -o

    Укажите имя конечного исполняемого файла (только автономные приложения). Использовать

    -o outputfile
    

    , чтобы назвать окончательный исполняемый вывод компилятора MATLAB. К указанному имени добавляется соответствующее расширение, зависящее от платформы (например, .exe для автономных приложений Windows).

  • -p

    Использовать совместно с опцией -N для добавления определенных папок и подпапок в matlabroot\toolbox к пути компиляции MATLAB. Файлы добавляются в том же порядке, в котором они отображаются в пути MATLAB. Использовать синтаксис

    -N -p directory
    

    где directory - папка, которая должна быть включена. Если directory не является абсолютным путем, предполагается, что он находится в текущей рабочей папке.

    • Если папка включена в -p то есть на исходном пути MATLAB, папка и все ее подпапки, которые появляются на исходном пути, добавляются к пути компиляции в том же порядке.

    • Если папка включена в -p которая отсутствует в исходном пути MATLAB, эта папка игнорируется. (Можно использовать -I принудительно включить его.)

  • -r

    Встроить значок ресурса в двоичный файл. Синтаксис следующий:

    -r 'path/to/my_icon.ico'

  • -R

    Укажите параметры среды выполнения MATLAB.

    Примечание

    Этот параметр применим только при создании автономных приложений с использованием компилятора MATLAB.

    Синтаксис следующий:

    -R option

    Выбор

    Описание

    Цель

    '-logfile,filename'

    Укажите имя файла журнала. Параметр должен быть в одиночных кавычках.

    Компилятор MATLAB

    -nodisplay

    Подавление MATLAB nodisplay предупреждение времени выполнения.

    Компилятор MATLAB

    -nojvm

    Не используйте виртуальную машину Java (JVM).

    Компилятор MATLAB

    -startmsg

    Настраиваемое сообщение пользователя, отображаемое во время инициализации.

    Автономные приложения компилятора MATLAB

    -completemsg

    Настраиваемое сообщение пользователя, отображаемое по завершении инициализации.

    Автономные приложения компилятора MATLAB

    -singleCompThread

    Ограничьте MATLAB одним вычислительным потоком.

    Компилятор MATLAB

    Внимание

    При работе на macOS, если вы используете -nodisplay как один из вариантов, включенных в mclInitializeApplication, затем звонок на mclInitializeApplication должно произойти перед вызовом mclRunMain.

    Примечание

    При указании -R для библиотек, созданных из MATLAB Compiler SDK, mcc по-прежнему компилирует без ошибок и генерирует результаты. Но -R не применяется к этим библиотекам и ничего не делает.

  • -S

    Стандартное поведение среды выполнения MATLAB заключается в том, что каждый экземпляр класса получает собственный контекст среды выполнения MATLAB. Контекст включает глобальную рабочую область MATLAB для переменных, таких как путь и базовая рабочая область для каждой функции в классе. Если создано несколько экземпляров класса, каждый экземпляр получает независимый контекст. Это гарантирует, что изменения, внесенные в глобальную или базовую рабочую область в одном экземпляре класса, не повлияют на другие экземпляры того же класса.

    В одиночной среде выполнения MATLAB все экземпляры класса имеют общий контекст. Если создано несколько экземпляров класса, они используют контекст, созданный первым экземпляром, который экономит время запуска и некоторые ресурсы. Однако любые изменения, внесенные в глобальную или базовую рабочую область одним экземпляром, влияют на все экземпляры класса. Например, если instance1 создает глобальную переменную A в одиночной среде выполнения MATLAB, затем instance2 может использовать переменную A.

    Singleton MATLAB Runtime поддерживается только следующими продуктами для этих конкретных целей:

    Цель, поддерживаемая Singleton MATLAB RuntimeСоздать Singleton MATLAB Runtime по....
    Надстройка ExcelПоведение по умолчанию для целевого объекта - singleton MATLAB Runtime. Выполнение других шагов не требуется.
    Сборка .NETПоведение по умолчанию для целевого объекта - singleton MATLAB Runtime. Выполнение других шагов не требуется.
    COM-компонент
    • С помощью приложения компилятора библиотеки щелкните Параметры и добавьте -S в поле Дополнительные параметры, переданное в MCC.

    • Используя mcc, пройти -S флаг.

    Пакет Java
  • -T

    Укажите выходную целевую фазу и тип.

    Использовать синтаксис -T target для определения типа вывода.

    ЦельОписание
    compile:exeСоздайте файл оболочки C/C + + и скомпилируйте файлы C/C + + в объектную форму, подходящую для связывания с автономным приложением.
    compile:libСоздайте файл оболочки C/C + + и скомпилируйте файлы C/C + + в объектную форму, подходящую для связывания с общей библиотекой или библиотекой DLL.
    link:exeТо же, что и compile:exe а также связать объектные файлы в автономное приложение.
    link:libТо же, что и compile:lib а также связать файлы объектов в общую библиотеку или DLL.

  • -u

    Зарегистрируйте COM-компонент для текущего пользователя только на компьютере разработки. Аргумент применяется только к универсальному компоненту COM и целям надстройки Microsoft Excel.

  • -U

    Построить развертываемый архив (.ctf файл) для производственного сервера MATLAB.

  • -v

    Просмотрите шаги компиляции, включая:

    • Номер версии компилятора MATLAB

    • Имена исходных файлов при их обработке

    • Имена созданных выходных файлов при их создании

    • Вызов mbuild

    -v параметр проходит -v опция для mbuild и отображает информацию о mbuild.

  • -w

    Отображение предупреждающих сообщений. Использовать синтаксис

    -w option [:<msg>]

    для управления отображением предупреждений.

    Синтаксис

    Описание

    -w list

    Список предупреждений о времени компиляции с сокращенными идентификаторами вместе с их состоянием.

    -w enable

    Включить все предупреждения о времени компиляции.

    -w disable[:<string>]

    Отключить определенные предупреждения о времени компиляции, связанные с <string>. Опустить необязательный параметр <string> для применения disable действие для всех предупреждений о времени компиляции.

    -w enable[:<string>]

    Включить определенные предупреждения о времени компиляции, связанные с <string>. Опустить необязательный параметр <string> для применения enable действие для всех предупреждений о времени компиляции.

    -w error[:<string>]

    Обработка определенных предупреждений о времени компиляции и времени выполнения, связанных с <string> как ошибка. Опустить необязательный параметр <string> для применения error действие для всех предупреждений о времени компиляции и времени выполнения.

    -w off[:<string>]

    Отключить предупреждения для определенных сообщений об ошибках, определенных <string>. Опустить необязательный параметр <string> для применения off действие для всех предупреждений во время выполнения.

    -w on[:<string>]

    Включить предупреждения среды выполнения, связанные с <string>. Опустить необязательный параметр <string> для применения on действие для всех предупреждений во время выполнения. Этот параметр включен по умолчанию.

    В коде MATLAB также можно включить или выключить предупреждения.

    Например, отключение предупреждений для развернутых приложений (указывается с помощью isdeployed) в startup.m, вы пишете:

    if isdeployed
        warning off
    end
    

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

    if isdeployed
        warning on
    end
    

    Можно также указать несколько -w варианты.

    Например, если требуется отключить все предупреждения, кроме repeated_file, вы пишете:

    -w disable -w enable:repeated_file
    При указании нескольких -w параметры обрабатываются слева направо.

  • -W

    Управление созданием оболочек функций. Использовать синтаксис

    -W type 

    для управления созданием оболочек функций для коллекции файлов MATLAB, созданных компилятором. Предоставляется список функций, и компилятор создает функции-оболочки и любые соответствующие определения глобальных переменных.

    ЦельСинтаксис
    Автономное приложение-W 'main:appName,version=version'
    Автономное приложение (без консоли Windows)-W 'WinMain:appName,version=version'
    Надстройка Excel-W 'excel:addinName,className,version=version'
    Приложение Hadoop MapReduce-W 'hadoop:archiveName,CONFIG:configFile'
    Приложение «Искра»-W 'spark:appName,version'

    Примечание

    Замените одинарные кавычки двойными при выполнении команды из командной строки Windows.

  • -X

    Использовать -X игнорирование файлов данных, считываемых обычными функциями ввода-вывода файлов MATLAB во время анализа зависимостей. Дополнительные сведения см. в разделе Анализ зависимостей с помощью компилятора MATLAB. Примеры использования -X опция, см. %#exclude.

  • -Y

    Использовать

     -Y license.lic

    для переопределения файла лицензии по умолчанию с указанным аргументом.

    Примечание

    -Y флаг работает только в режиме командной строки.

    >>!mcc -m foo.m -Y license.lic

Совет

  • В Windows можно создать номер версии файла системного уровня для целевого файла путем добавления version=version_number к целевому генератору mcc синтаксис. Пример см. в разделе Создание автономного приложения с номером версии файла системного уровня (только для Windows).

    version_number - Указывает версию целевого файла как major.minor.bug.build в файловой системе. Указывать номер версии не требуется. Если номер версии не указан, mcc устанавливает номер версии по умолчанию в 1.0.0.0.

    • major - указывает основной номер версии. Если номер версии не указан, mcc наборы major кому 1.

    • minor - Указывает дополнительный номер версии. Если номер версии не указан, mcc наборы minor кому 0.

    • bug - указывает номер выпуска обновления для исправления ошибок. Если номер версии не указан, mcc наборы bug кому 0.

    • build - Указывает номер сборки. Если номер версии не указан, mcc наборы build кому 0.

    Эта функция поддерживается для автономных приложений и надстроек Excel в компиляторе MATLAB. Для получения информации о поддерживаемых целях в MATLAB Compiler SDK см. раздел Советы в mcc (MATLAB Compiler SDK).

Представлен до R2006a