Упакуйте COM- Компонентов из командной строки

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

  • deploytool вызывает приложение Application Compiler для выполнения проекта сохраненного компилятора.

  • mcc Вызывает MATLAB Compiler™ для создания развертываемого приложения в командной строке.

Выполнение проектов компилятора с deploytool

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

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

  • -упаковать project_name - Активируйте правильное приложение компилятора, чтобы создать проект и сгенерировать инсталлятор.

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

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

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

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

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

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

mcc опция для использования: -W com

The 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

Управление использованием MATLAB Runtime каждым классом.

mcc опция для использования: -S

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

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

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

Примечание

Поведение по умолчанию диктует создание новой среды выполнения MATLAB для каждого образца класса, поэтому при уничтожении класса 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

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

Синтаксис

-d foldername

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

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

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

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

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

  • Связанную информацию можно вести в удобном файле проекта.

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

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

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

См. также

|

Похожие темы