Создайте автономное приложение из MATLAB

Поддерживаемая платформа: Windows®, Linux®, macOS

В этом примере показано, как использовать MATLAB® Compiler™, чтобы упаковать предварительно написанную функцию, которая печатает магический квадрат в командную строку. Для запуска приложения целевой системе не требуется лицензированная копия MATLAB.

Автономные приложения можно создать с помощью следующих опций:

ОпцияЦель
Application Compiler

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

compiler.build.standaloneApplication

Используйте эту функцию для создания автономного приложения, которое не включает MATLAB Runtime или инсталлятор. Чтобы создать автономное приложение, которое не запускает командный интерпретатор Windows, используйте compiler.build.standaloneWindowsApplication.

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

Примечание

Приложение не является кросс-платформой, и тип исполняемого файла зависит от платформы, на которой он был сгенерирован.

Создайте функцию в MATLAB

В MATLAB найдите код MATLAB, который вы хотите развернуть как автономное приложение.

В данном примере скомпилируйте с помощью файла magicsquare.m расположен в matlabroot\ extern\примеры\компилятор.

function m = magicsquare(n)

if ischar(n)
    n=str2double(n);
end
m = magic(n);
disp(m)

В командном окне MATLAB введите magicsquare(5).

Выходные выходы:

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

Создайте автономное приложение с помощью приложения Application Compiler

  1. На вкладке MATLAB Apps, в крайнем правом углу Apps раздела, щелкните стреле. В Application Deployment нажмите Application Compiler.

    Также можно открыть приложение Application Compiler, введя applicationCompiler в подсказку MATLAB.

  2. В MATLAB Compiler окне проекта укажите основной файл приложения MATLAB, который необходимо развернуть.

    1. В Main File разделе панели инструментов нажмите.

    2. В Add Files окне перейдите к разделу matlabroot\ extern\примеры\компилятор, и выберите magicsquare.m. Нажмите Open.

      Функция magicsquare.m добавляется в список основных файлов.

  3. Решите, включать ли MATLAB Runtime installer в сгенерированное приложение, выбрав один из двух опций в Packaging Options разделе:

    • Runtime downloaded from web - генерирует инсталлятор, который загружает MATLAB Runtime и устанавливает его вместе с развернутым приложением MATLAB.

    • Runtime included in package - генерирует инсталлятор, который включает в себя инсталлятор MATLAB Runtime.

  4. Настройте упакованное приложение и его внешний вид:

    • Application information - редактируемая информация о развернутом приложении. Вы также можете настроить внешний вид автономных приложений, изменив значок приложения и заставку. Сгенерированный инсталлятор использует эти сведения для заполнения установленных метаданных приложения. См. раздел Настройка установщика.

    • Command line input type options - Выбор типов входных данных для автономного приложения. Для получения дополнительной информации смотрите Определение типа данных входа в командной строке (только для упаковки автономных приложений).

    • Additional installer options - измените путь установки по умолчанию для сгенерированного установщика и выбрав пользовательский логотип. См. раздел «Изменение пути установки».

    • Files required for your application to run - дополнительные файлы, необходимые для запуска сгенерированного приложения. Эти файлы включены в созданную программу установки приложения. См. «Управление необходимыми файлами в проекте компилятора».

    • Files installed for your end user - файлы, установленные вместе с вашим приложением. Эти файлы включают:

      • Сгенерированные readme.txt

      • Сгенерированный исполняемый файл для целевой платформы

      См. раздел «Указание файлов для установки в приложении».

    • Additional runtime settings - специфичные для платформы опции для управления сгенерированным исполняемым файлом. См. Раздел «Дополнительные настройки времени выполнения».

      Внимание

      В операционных системах Windows при создании приложения только для консоли снимите флажок Do not display the Windows Command Shell (console) for execution. По умолчанию этот флажок установлен. Если флажок установлен, вывод данных только из приложения консоли не отображается. Поскольку этот пример является только консольным приложением, флажок должен быть снят.

  5. Чтобы сгенерировать упакованное приложение, нажмите Package.

    В диалоговом окне «Сохранение проекта» укажите местоположение для сохранения проекта.

  6. В диалоговом окне Package проверьте, что выбран Open output folder when process completes.

    Когда упаковочный процесс будет завершен, исследуйте сгенерированный выход.

    • В расположении целевой папки генерируются три папки: for_redistribution, for_redistribution_files_only, и for_testing.

      Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, сгенерированные После Упаковки Функций MATLAB.

    • PackagingLog.html - Файл журнала, сгенерированный MATLAB Compiler.

  7. Для установки автономного приложения см. раздел Установка автономного приложения.

Создайте автономное приложение, используя compiler.build.standaloneApplication

Примечание

Если вы уже создали автономное приложение с помощью приложения Application Compiler, можно пропустить этот раздел. Однако, если вы хотите узнать, как создать автономное приложение из командного окна MATLAB с помощью программного подхода, следуйте этим инструкциям.

  1. В MATLAB найдите код MATLAB, который вы хотите развернуть как автономное приложение. В данном примере скомпилируйте с помощью файла magicsquare.m расположен в matlabroot\ extern\примеры\компилятор.

    appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');
  2. Создайте автономное приложение с помощью compiler.build.standaloneApplication функция.

    buildResults = compiler.build.standaloneApplication(appFile);

    The compiler.build.Results buildResults объекта содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.

  3. Функция генерирует следующие файлы в папке с именем magicsquarestandaloneApplication в вашей текущей рабочей директории:

    • magicsquare.exe или magicsquare - Исполняемый файл с .exe расширение, скомпилированное в системе Windows, или без расширения, скомпилированного в системах Linux или macOS.

    • run_magicsquare.sh - Файл скрипта Shell, который задает путь к библиотеке и выполняет приложение. Этот файл генерируется только в системах Linux и macOS.

    • mccExcludedFiles.log - Файл журнала, содержащий список функций тулбокса, не включенных в приложение. Для получения информации о не поддерживаемых функциях смотрите MATLAB Compiler Limitations.

    • readme.txt - Текстовый файл, содержащий информацию о необходимых условиях развертывания и списке файлов, подлежащих упаковке для развертывания.

    • requiredMCRProducts.txt - Текстовый файл, содержащий идентификаторы продуктов, требуемых MATLAB Runtime для запуска приложения.

    • unresolvedSymbols.txt - Текстовый файл, содержащий информацию о неразрешенных символах.

    Примечание

    Сгенерированный независимый исполняемый файл не включает MATLAB Runtime или инсталлятор.

  4. Дополнительные опции могут быть заданы при помощи одной или нескольких разделенных разделенными запятой парами аргументов имя-значение в compiler.build команда.

    • 'AdditionalFiles' - Пути к дополнительным файлам для включения в автономное приложение.

    • 'AutoDetectDataFiles' - Флаг для автоматического включения файлов данных.

    • 'CustomHelpTextFile' - Путь к файлу, содержащему текст справки для конечного пользователя приложения.

    • 'EmbedArchive' - Флаг для встраивания автономного архива в сгенерированный исполняемый файл.

    • 'ExecutableIcon' - Путь к пользовательскому изображению значка.

    • 'ExecutableName' - Имя сгенерированного приложения.

    • 'ExecutableSplashScreen' - Путь к пользовательскому изображению заставки. Эта опция используется только при компиляции с помощью compiler.build.standaloneWindowsApplication функция.

    • 'ExecutableVersion' - Версия сгенерированного приложения системного уровня. Это используется только в системах Windows.

    • 'OutputDirectory' - Путь к выходной директории, который содержит сгенерированные файлы.

    • 'TreatInputsAsNumeric' - Флаг для интерпретации входов командной строки как числа MATLAB удваивается.

    • 'Verbose' - Флаг для отображения информации о прогрессе, указывающей на выход компилятора во время процесса сборки.

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

    buildResults = compiler.build.standaloneApplication(appFile,...
        'ExecutableName','MyMagic','Verbose','On');
  5. Чтобы запустить magicsquare от MATLAB с входным параметром 4, перейдите к magicsquarestandaloneApplication папка и выполните одну из следующих команд на основе вашей операционной системы:

    Операционная системаТест в Командном Окне MATLAB
    Windows!magicsquare 4
    macOSsystem(['./run_magicsquare.sh ',matlabroot,' 4']);
    Linux!./magicsquare 4

  6. Чтобы запустить автономное приложение за пределами MATLAB, смотрите Запуск автономного приложения.

Создайте автономный инсталлятор приложения с помощью compiler.package.installer Функция

Примечание

Если вы уже создали автономный инсталлятор приложения с помощью приложения Application Compiler, можно пропустить этот раздел. Однако, если вы хотите узнать, как создать инсталлятор для автономного приложения из командной строки MATLAB с помощью программного подхода, следуйте этим инструкциям.

  1. В MATLAB найдите код MATLAB, который вы хотите развернуть как автономное приложение. В данном примере скомпилируйте с помощью файла magicsquare.m расположен в matlabroot\ extern\примеры\компилятор.

    appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');
  2. Создайте автономное приложение с помощью compiler.build.standaloneApplication и сохраните выход в compiler.build.Results объект.

    buildResults = compiler.build.standaloneApplication(appFile);
  3. Создайте инсталлятор при помощи Results buildResults объекта как входной параметр к compiler.package.installer функция.

    compiler.package.installer(buildResults);

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

  4. Дополнительные опции могут быть заданы как одна или несколько разделенных разделенными запятой парами аргументов имя-значение в compiler.package.installer команда.

    • 'ApplicationName' - Имя установленного приложения.

    • 'AuthorCompany' - Имя компании, создавшей приложение.

    • 'AuthorEmail' - Адрес электронной почты автора приложения.

    • 'AuthorName' - Имя автора приложения.

    • 'DefaultInstallationDir' - директория по умолчанию, в котором установлено приложение.

    • 'Description' - Подробное описание заявки.

    • 'InstallationNotes' - Примечания о дополнительных требованиях к использованию приложения.

    • 'InstallerIcon' - Путь к файлу изображения, используемому в качестве значка установщика.

    • 'InstallerLogo' - Путь к файлу изображений, используемому в качестве логотипа установщика.

    • 'InstallerName' - Имя сгенерированного установщика.

    • 'InstallerSplash' - Путь к файлу изображения, используемому в качестве заставки программы установки.

    • 'OutputDir' - Путь к папке, содержащей сгенерированный инсталлятор.

    • 'RuntimeDelivery' - Метод установки среды MATLAB Runtime, заданный как одно из следующих:

      • 'web' (по умолчанию) - Опция для установки MATLAB Runtime во время установки приложения.

      • 'installer' - Опция включения MATLAB Runtime в установщик, чтобы установить его без подключения к Интернету.

    • 'Shortcut' - Путь к файлу или папке, для которых установщик будет создавать ярлык во время установки. Это используется только в Windows.

    • 'Summary' - Сводные данные заявки.

    • 'Version' - Номер версии сгенерированного приложения.

    Например, можно задать имя установщика и включить в инсталлятор MATLAB Runtime.

    compiler.package.installer(buildResults,...
        'InstallerName','MyMagic_Install','RuntimeDelivery','installer');

Установка автономного приложения

Запуск автономного приложения

  1. В командной строке системы перейдите к папке, содержащей ваш независимый исполняемый файл.

  2. Чтобы запустить приложение без использования интерпретатора скрипта на Linux и macOS, необходимо сначала добавить MATLAB Runtime к пути библиотеки. Для получения дополнительной информации смотрите Set MATLAB Путь for Run-Time Deployment.

  3. Выполняйте magicsquare с входным параметром 5 при помощи одной из следующих команд на основе вашей операционной системы:

    Операционная системаКоманда
    Windowsmagicsquare 5
    Linux

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

    ./run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR> 5

    Использование исполняемого файла:

    ./magicsquare 5

    macOS

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

    ./run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR> 5

    Использование исполняемого файла:

    ./magicsquare.app/Contents/macOS/magicsquare 5

  4. Приложение выводит магический квадрат 5 на 5 в консоли:

        17    24     1     8    15
        23     5     7    14    16
         4     6    13    20    22
        10    12    19    21     3
        11    18    25     2     9
  5. Чтобы создать ярлык командной строки для приложения на Linux или macOS, используйте alias команда.

    alias mymagic='/path/to/run_magicsquare.sh <MATLAB_RUNTIME_INSTALL_DIR>'

    Чтобы запустить приложение с входным параметром 4, тип mymagic 4 в терминале.

  6. Чтобы сделать псевдоним постоянным, добавьте команду к файлу ~/.bash_aliases в интерпретаторе Bash или ~/.zshrc в интерпретаторе Зша.

    echo "alias mymagic='~/MATLAB/apps/run_magicsquare.sh /usr/local/MATLAB/MATLAB_Runtime/v910'" >> ~\.bash_aliases

См. также

| | | | |

Похожие темы