mcc

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

Описание

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

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

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

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

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

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

пример

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 Compiler),

пример

mcc -m options mfilename компилирует приложение MATLAB, содержащее Simulink® симуляция в автономное приложение. Для получения дополнительной информации смотрите, Создают и Развертывают Скрипт с Simulink Compiler (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 Production Server

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

Создайте автономное приложение для симуляции Simulink (требует Simulink Compiler ),

Создавать автономное приложение для симуляции Simulink:

Создайте модель Simulink с помощью Simulink. Этот пример использует модель sldemo_suspn_3dof это поставляется с Simulink.

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

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 Compiler. Когда импортировано в код 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.

  • -gG

    Включайте отладочную информацию для кода C/C++, сгенерированного MATLAB Compiler SDK. Это также вызывает mbuild передать соответствующие флаги отладки системе компилятор C/C++. Параметр отладки позволяет вам след до точки, где можно идентифицировать, произошел ли отказ в инициализации MATLAB Runtime, вызове функции или стандартной программе завершения. Эта опция не позволяет вам отладить свои файлы 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

    То опция автоматически идентифицирует, что числовая командная строка вводит и обрабатывает их, когда 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 Compiler. Подходящее зависимое платформой расширение добавляется к указанному имени (например, .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 Runtime, которые передаются приложению во время инициализации.

    Примечание

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

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

    -R option

    Опция

    Описание

    Цель

    '-logfile,filename'

    Задайте имя файла журнала. Файл создается в папке приложения во времени выполнения. Опция должна быть в одинарных кавычках. Используйте двойные кавычки при выполнении команды от Windows Command Prompt.

    MATLAB Compiler

    -nodisplay

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

    MATLAB Compiler

    -nojvm

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

    MATLAB Compiler

    -startmsg

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

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

    -completemsg

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

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

    -singleCompThread

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

    MATLAB Compiler

    Внимание

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

    Примечание

    Если вы задаете -R опция для библиотек, созданных из MATLAB Compiler SDK, mcc все еще компиляции и генерируют результаты, но -R опция не применяется к этим библиотекам и ничего не делает.

  • -s

    Запутайте структуры папок и имена файлов в развертываемом архиве (.ctf файл) от конечного пользователя. Опционально зашифруйте дополнительные типы файлов.

    -s опция направляет mcc поместить пользовательский код и данные, содержавшиеся в .mP, v7.3 .mat, и файлы MEX в пользовательский пакет в CTF. Во время времени выполнения, кода MATLAB и данных дешифрован и загружен непосредственно от пользовательского пакета, а не извлечен к файловой системе. Файлы MEX временно извлечены из пользовательского пакета перед загружением.

    Чтобы вручную включать дополнительные типы файлов в пользовательский пакет, добавьте каждый тип файла в отдельном дополнительном теге к файлу matlabroot/toolbox/compiler/advanced_package_supported_files.xml.

    Следующее не поддерживается:

    • ver функция

    • MATLAB Runtime из процесса (C++ совместно использовал библиотеку для Массива данных MATLAB),

    • Выполнение файла MEX из процесса (mexhost, feval, matlab.mex.MexHost)

  • -S

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

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

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

    Цель, поддержанная Singleton MATLAB RuntimeСоздайте Singleton MATLAB Runtime....
    Дополнение ExcelПоведение по умолчанию для цели является одиночным элементом MATLAB Runtime. Вы не должны выполнять другие шаги.
    Блок.NETПоведение по умолчанию для цели является одиночным элементом MATLAB Runtime. Вы не должны выполнять другие шаги.
    COM-компонент
    • Используя приложение Library Compiler, click Settings и добавляют -S к полю Additional parameters passed to 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 Production Server.

  • -v

    Отобразите шаги компиляции, включая:

    • Номер версии MATLAB Compiler

    • Исходный файл называет, когда они обрабатываются

    • Имена сгенерированных выходных файлов, когда они создаются

    • Вызов mbuild

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

  • -w

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

    -w option [:<msg>]

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

    Синтаксис

    Описание

    -w list

    Перечислите предупреждения времени компиляции, которые сократили идентификаторы, вместе с их состоянием.

    -w enable

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

    - w отключают [: <string>]

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

    - w включают [: <string>]

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

    - w ошибка [: <string>]

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

    - w прочь [: <string>]

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

    - w на [: <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:addinNameClassName , version=version'
    Приложение MapReduce Hadoop- W 'hadoop:archiveName, CONFIG:configFile'
    Приложение Spark- W 'spark:appNameверсия'

    Примечание

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

  • -X

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

  • -Y

    Использование

     -Y license.lic

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

    Примечание

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

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

    Использование

    -Z option
    задавать метод добавляющих пакетов поддержки в развертываемый архив.

    СинтаксисОписание
    -Z 'autodetect'Процесс анализа зависимостей обнаруживает и включает необходимые пакеты поддержки автоматически. Это - поведение по умолчанию MCC.
    -Z 'none'Никакие пакеты поддержки не включены. Используя эту опцию может вызвать ошибки периода выполнения.
    - Z packagenameТолько заданный пакет поддержки включен. Чтобы задать несколько пакетов поддержки, используйте несколько -Z входные параметры.

    Примечание

    Чтобы перечислить установленные пакеты поддержки или используемых определенным файлом, смотрите compiler.codetools.deployableSupportPackages.

Советы

  • На 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 Compiler. Для поддерживаемых целей в MATLAB Compiler SDK смотрите раздел Tips в mcc (MATLAB Compiler SDK).

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