MCC

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

Синтаксис

mcc options mfilename1 mfilename2...mfilenameN
mcc -l options mfilename1 mfilename2...mfilenameN
mcc -c options mfilename1 mfilename2...mfilenameN
mcc -W cpplib:library_name[,{all|legacy|generic}] options mfilename1 mfilename2...mfilenameN
mcc -W com:component_name,className -T link:lib options class{className:mfilename1 mfilename2...mfilenameN}
mcc -W dotnet:assembly_name,className,framework_version,security,remote_type -T link:lib options mfilename1 mfilename2...mfilenameN
mcc -W dotnet:assembly_name,className,framework_version,security,remote_type -T link:lib options class{className:mfilename1 mfilename2...mfilenameN}
mcc -W java:packageName,className options mfilename1 mfilename2...mfilenameN
mcc -W java:packageName,className options class{className:mfilename1 mfilename2...mfilenameN}
mcc -W python:namespace.packageName -T link:lib options mfilename1 mfilename2...mfilenameN
mcc -W CTF:archive_name -U options mfilename1 mfilename2...mfilenameN
mcc -W mpsxl:addin_name,className,version input_marshaling_flags output_marshaling_flags -T link:lib options mfilename1 mfilename2...mfilenameN

Описание

mcc options mfilename1 mfilename2...mfilenameN компилирует функции, как задано опциями.

Используемые опции зависят от намеченных результатов компиляции. Для получения информации о компиляции:

  • автономные приложения, дополнения Excel® или задания Hadoop® видят mcc для MATLAB® Compiler™

mcc -l options mfilename1 mfilename2...mfilenameN компилирует перечисленные функции в C, совместно использовал библиотеку и генерирует код обертки C для интеграции с другими приложениями.

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

mcc -c options mfilename1 mfilename2...mfilenameN генерирует код обертки C для перечисленных функций.

Это эквивалентно -W lib:libname -T codegen.

пример

mcc -W cpplib:library_name[,{all|legacy|generic}] options mfilename1 mfilename2...mfilenameN компилирует перечисленные функции на C++, совместно использовал библиотеку и генерирует код обертки C++ для интеграции с другими приложениями.

  • library_name — Задает имя разделяемой библиотеки.

  • все Генерирует совместно использованные библиотеки с помощью и API mwArray и типичного интерфейса, который использует MATLAB Data API. Это значение по умолчанию.

  • legacy — Генерирует совместно использованные библиотеки с помощью API mwArray.

  • generic — Генерирует совместно использованные библиотеки с помощью MATLAB Data API.

mcc -W com:component_name,className -T link:lib options class{className:mfilename1 mfilename2...mfilenameN} компилирует перечисленные функции в типичный COM-компонент Microsoft®.

  • component_name — Задает имя COM-компонента.

  • className Задает имя класса.

mcc -W dotnet:assembly_name,className,framework_version,security,remote_type -T link:lib options mfilename1 mfilename2...mfilenameN создает блок.NET с единым классом из заданных файлов.

  • assembly_name — Задает имя блока, которому предшествует его пространство имен, которое является разделенным от периода списком, таким как companyname.groupname.component.

  • className Задает имя класса.NET, который будет создан.

  • framework_version — Задает версию Microsoft.NET Framework, который вы хотите использовать, чтобы скомпилировать блок. Задайте также:

    • 0.0 — Используйте последнюю поддерживаемую версию на целевой машине.

    • version_major.version_minor — Используйте определенную версию среды.

    Функции часто специфичны для версии. Консультируйтесь с документацией для опции, которую вы реализуете, чтобы получить требования версии Microsoft.NET Framework.

  • security — Задает, является ли блок, который будет создан, приватной сборкой или совместно используемой сборкой.

    • Чтобы создать приватную сборку, задайте Private.

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

  • remote_type — Задает тип дистанционной работы блока. Значениями является remote и local.

mcc -W dotnet:assembly_name,className,framework_version,security,remote_type -T link:lib options class{className:mfilename1 mfilename2...mfilenameN} создает блок.NET с несколькими классами из заданных файлов.

  • assembly_name — Задает имя блока и его пространства имен, которое является разделенным от периода списком, таким как companyname.groupname.component.

  • className Задает имя класса.NET, который будет создан.

    Примечание

    Можно включать несколько спецификаторов класса.

  • framework_version — Задает версию Microsoft.NET Framework, который вы хотите использовать, чтобы скомпилировать блок. Задайте также:

    • 0.0 — Используйте последнюю поддерживаемую версию на целевой машине.

    • version_major.version_minor — Используйте определенную версию среды.

    Функции часто специфичны для версии. Консультируйтесь с документацией для опции, которую вы реализуете, чтобы получить требования версии Microsoft.NET Framework.

  • security — Задает, является ли блок, который будет создан, приватной сборкой или совместно используемой сборкой.

    • Чтобы создать приватную сборку, задайте Private.

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

  • remote_type — Задает тип дистанционной работы блока. Значениями является remote и local.

mcc -W java:packageName,className options mfilename1 mfilename2...mfilenameN создает пакет Java® из заданных файлов.

  • packageName Задает имя пакета Java и его пространства имен, которое является разделенным от периода списком, таким как companyname.groupname.component.

  • className Задает имя класса, который будет создан. Если вы не задаете имя класса, mcc использует последний элемент в packageName.

пример

mcc -W java:packageName,className options class{className:mfilename1 mfilename2...mfilenameN} создает пакет Java с несколькими классами из заданных файлов.

  • packageName Задает имя пакета Java и его пространства имен, которое является разделенным от периода списком, таким как companyname.groupname.component.

  • className Задает имя класса, который будет создан. Если вы не задаете имя класса, mcc использует последний элемент в packageName.

    Примечание

    Можно включать несколько спецификаторов класса.

пример

mcc -W python:namespace.packageName -T link:lib options mfilename1 mfilename2...mfilenameN создает пакет Python® из заданных файлов.

  • namespace — Задает дополнительное пространство имен для пакета, который является разделенным от периода списком, таким как companyname.groupname.component

  • packageName Задает имя пакета Python.

mcc -W CTF:archive_name -U options mfilename1 mfilename2...mfilenameN дает компилятору команду создавать развертываемый архив (файл .ctf) для использования с экземпляром MATLAB Production Server™.

Синтаксис также создает серверную сторону развертываемый архив (файл .ctf) для дополнений Microsoft Excel.

mcc -W mpsxl:addin_name,className,version input_marshaling_flags output_marshaling_flags -T link:lib options mfilename1 mfilename2...mfilenameN создает клиентское дополнение Microsoft Excel из заданных файлов, которые могут использоваться, чтобы отправить запросы к MATLAB Production Server от Excel. Созданию клиентского дополнения нужно предшествовать путем создания серверной стороны развертываемый архив (файл .ctf) из заданных файлов. Дополнение чисто клиентской стороны не жизнеспособно.

  • addin_name — Задает имя дополнения и его пространства имен, которое является разделенным от периода списком, таким как companyname.groupname.component.

  • className Задает имя класса, который будет создан. Если вы не задаете имя класса, mcc использует addin_name в качестве значения по умолчанию.

  • версия Задает версию дополнения, заданного как major.minor.

    • major — Задает номер основной версии. Если вы не задаете номер версии, mcc использует последнюю версию.

    • minor — Задает номер вспомогательной версии. Если вы не задаете номер версии, mcc использует последнюю версию.

  • input_marshaling_flags — Задает опции для того, как данные упорядочены между Microsoft Excel и MATLAB.

    • -replaceBlankWithNaN — Указывает, что пробел в Microsoft Excel является mashaled в NaN в MATLAB. Если вы не задаете этот флаг, пробелы упорядочены в 0.

    • -convertDateToString — Указывает, что даты в Microsoft Excel упорядочены в векторы символов MATLAB. Если вы не задаете этот флаг, даты упорядочены в MATLAB, удваивается.

  • output_marshaling_flags — Задает опции для того, как данные упорядочены между MATLAB и Microsoft Excel.

    • -replaceNaNWithZero — Указывает, что NaN в MATLAB упорядочен в 0 в Microsoft Excel. Если вы не задаете этот флаг, NaN упорядочивается в #QNAN в Визуальном Basic®.

    • -convertNumericToDate — Указывает, что числовые значения MATLAB упорядочены в даты Microsoft Excel. Если вы не задаете этот флаг, Microsoft Excel не получает даты, как выведено.

Примеры

Скомпилируйте совместно использованную библиотеку C++

Используйте API mwArray

mcc -W 'cpplib:mymagic,legacy' mymagic.m

Используйте MATLAB Data API

mcc -W 'cpplib:mymagic,generic' mymagic.m

Используйте и API mwArray и MATLAB Data API

mcc -W 'cpplib:mymagic,all' mymagic.m
ИЛИ
mcc -W 'cpplib:mymagic' mymagic.m

Скомпилируйте пакет Java, содержащий несколько классов

mcc -W 'java:myMatrix,add' class{add:add.m} class{sub:minus.m}

Скомпилируйте пакет Python

mcc -W python:myMagic -T link:lib magic.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.

  • -C

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

    Примечание

    Флаг -C проигнорирован для библиотек Java.

  • -d

    Место выводится в заданной папке. Использование

    -d outFolder
    

    направить сгенерированные файлы к outFolder.

  • -f

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

    -f filename
    

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

  • -g, -G

    Включайте отладочную информацию для кода 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 используется.

  • -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 Compiler. Подходящее зависимое платформой расширение добавляется к указанному имени (например, .exe для автономных приложений Windows®).

  • -p

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

    -N -p directory
    

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

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

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

  • -R

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

    -R option

    Опция

    Описание

    Цель

    -logfile,filename

    Задайте имя файла журнала.

    MATLAB Compiler

    -nodisplay

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

    MATLAB Compiler

    -nojvm

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

    MATLAB Compiler

    -startmsg

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

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

    -completemsg

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

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

    Внимание

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

    Примечание

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

  • -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

    Перечислите все возможные предупреждения, что mcc может сгенерировать.

    -w enable

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

    -w disable[:<string>]

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

    -w enable[:<string>]

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

    -w error[:<string>]

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

    -w off[:<string>] [<filename>]

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

    -w on[:<string>] [<filename>]

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

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

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

    if isdeployed
        warning off
    end
    

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

    if isdeployed
        warning on
    end
    
  • -W

    Управляйте генерацией функциональных оберток. Используйте синтаксис

    -W type 

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

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

     -Y license.lic

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

    Примечание

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

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

Смотрите также

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

Для просмотра документации необходимо авторизоваться на сайте