COM-компоненты пакета из командной строки

Можно группировать COM-компоненты в подсказке MATLAB® или системном приглашении с помощью любой из этих команд.

  • deploytool вызывает приложение Application Compiler, чтобы осуществить сохраненный проект компилятора.

  • mcc вызывает MATLAB Compiler™, чтобы создать развертываемое приложение в командной строке.

Осуществите проекты компилятора с deploytool

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

  • -build project_name — Вызовите правильное приложение компилятора, чтобы разработать проект, но не сгенерировать инсталлятор.

  • -package project_name — Вызовите правильное приложение компилятора, чтобы разработать проект и сгенерировать инсталлятор.

Например, deploytool -package magicsquare генерирует двоичные файлы, заданные проектом magicsquare, и группирует их в инсталлятор, который можно распределить другим.

Создайте COM-компонент с mcc

Команда mcc вызывает MATLAB Compiler, чтобы создать COM-компонент в командной строке и обеспечивает прекрасный контроль уровня при упаковке компонента. Это не группирует результаты в инсталляторе.

Класс MATLAB не может быть непосредственно группирован в COM-объект. Можно, однако, использовать сгенерированный пользователями класс в файле MATLAB и создать COM-объект из того файла. Можно использовать интерфейс командной строки MATLAB вместо приложения Library Compiler, чтобы создать COM-объекты. Сделайте это путем выдачи команды mcc с опциями. Если вы используете mcc, вы не создаете проект.

Следующая таблица предоставляет обзор некоторых опций mcc, связанных с компонентами, наряду с синтаксисом и примерами их использования.

Действие, чтобы выполнитьОписание
Создайте компонент, который имеет один класс.

Опция mcc, чтобы использовать: -W com

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

Синтаксис

mcc -W 'com:<component_name>[,<class_name>[,<major>.<minor>]]'

Незаданные значения по умолчанию <class_name> к <component_name> и незаданный номер версии значения по умолчанию к созданной последней версии или 1.0, если нет никакой предыдущей версии.

Пример

mcc -W 'com:mycomponent,myclass,1.0' -T link:lib foo.m bar.m

Пример создает COM-компонент под названием mycomponent, который содержит один COM-класс под названием myclass с методами foo и bar и версия 1,0.

Добавьте дополнительные классы в COM-компонент.

Опция mcc, чтобы использовать: Не нужный

Отдельный COM под названием <class_name> создается для каждого аргумента класса, который передается.

После <class_name> параметр является списком, разделенным запятыми исходных файлов, которые инкапсулируются как методы для класса.

Синтаксис

class{<class_name>:[file, [file,...]]}

Пример

mcc -B 'com:mycomponent,myclass,1.0' foo.m bar.m class{myclass2:foo2.m, bar2.m}

Пример создает COM-компонент под названием mycomponent с двумя классами: myclass имеет методы foo и bar, и myclass2 имеет методы foo2 и bar2. Версия является версией 1.0.

Упростите вход командной строки для компонентов.

Опция mcc, чтобы использовать: -B com:

Использует пакет.

Синтаксис

mcc -B '<bundle>'[:<a1>,<a2>,...,<an>]

Пример

mcc -B 'com:mycomponent,myclass,1.0' foo.m bar.m

Управляйте, как каждый COM-класс использует MATLAB Runtime.

Опция mcc, чтобы использовать: -S

По умолчанию новый экземпляр MATLAB Runtime создается для каждого экземпляра каждого COM-класса в компоненте. Используйте -S, чтобы изменить значение по умолчанию.

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

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

Примечание

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

Пример

mcc -S -B 'com:mycomponent,myclass,1.0' foo.m bar.m

Пример создает COM-компонент под названием mycomponent, содержащий один COM-класс под названием myclass с методами foo и bar и версия 1,0.

Когда несколько экземпляров этого класса инстанцируют в приложении, только один MATLAB Runtime инициализируется, и это совместно используется каждым экземпляром.

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

Опция mcc, чтобы использовать: -d

Подпапки \src и \distrib используются к компонентам пакета.

Синтаксис

-d foldername

Различия между приложениями компилятора и командной строкой

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

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

Преимущества приложения компилятора включают:

  • Можно выполнить связанные задачи развертывания с одним интуитивным интерфейсом.

  • Можно поддержать сопутствующую информацию в удобном файле проекта.

  • Ваше состояние проекта сохраняется между сеансами.

  • Можно загрузить ранее сохраненные проекты компилятора из предзаполненного меню.

  • Можно группировать приложения для распределения.

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

|

Похожие темы