Сгенерируйте C++ mwArray API Разделяемая Библиотека и Сборка Приложение C++

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

То В этом примере показано, как создать C++, совместно использовало библиотеку из MATLAB® функция. Можно интегрировать сгенерированную библиотеку в приложение C++. Этот пример также показывает, как вызвать совместно использованную библиотеку C++ из приложения C++. Целевая система не требует лицензированной копии MATLAB.

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

В MATLAB исследуйте код MATLAB, который вы хотите упакованный. В данном примере открытый addmatrix.m расположенный в matlabroot\extern\examples\compilersdk\c_cpp\matrix.

 addmatrix.m

В командной строке MATLAB введите:

addmatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])

Выход:

 ans =
     2     8    14
     4    10    16
     6    12    18

Создайте C++ разделяемая библиотека Используя приложение Library Compiler

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

    В качестве альтернативы можно открыть приложение Library Compiler из командной строки MATLAB путем ввода:

    libraryCompiler

  2. В разделе Type панели инструментов нажмите C++ Shared Library.

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

    1. В разделе Exported Functions панели инструментов щелкнутьAdd exported function to the project.

    2. В окне Add Files просмотрите к папке в качестве примера и выберите функцию, которую вы хотите группировать. Нажмите Open.

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

    В данном примере перейдите к matlabroot\extern\examples\compilersdk\c_cpp\matrix и выберите addmatrix.m.

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

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

    • Runtime included in package — Сгенерируйте приложение, которое включает инсталлятор MATLAB Runtime. Можно задать имя файла инсталлятора.

      Примечание

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

Задайте разделяемые настройки библиотеки

  1. Поле Library Name автоматически заполняется с addmatrix как имя упакованной разделяемой библиотеки. Переименуйте его как libmatrix. То же имя выполняется в реализации разделяемой библиотеки.

  2. Добавьте файлы MATLAB, чтобы сгенерировать демонстрационные файлы драйвера C++. Несмотря на то, что файлы драйвера C++ не необходимы, чтобы создать совместно использованные библиотеки, они используются, чтобы продемонстрировать, как Реализовать C++ mwArray API Разделяемая Библиотека с Приложением Драйвера.

    В разделе Samples выберите Create New Sample и нажмите addmatrix.m. Файл MATLAB открывается для вас, чтобы отредактировать. Задайте входные переменные по мере необходимости для вашего приложения, сохраните файл и возвратитесь к приложению Library Compiler. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.

  3. Отредактируйте файл MATLAB, который открывается следующими значениями:

    % Sample script to demonstrate execution of function a = addmatrix(a1, a2)
    a1 = [1 4 7; 2 5 8; 3 6 9]; % Initialize a1 here
    a2 = a1; % Initialize a2 here
    a = addmatrix(a1, a2);

    Сохраните файл и возвратитесь к приложению Library Compiler. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.

  4. Выберите тип API для совместно использованных библиотек сгенерированного C++. В разделе API selection в нижней части выберите Create interface that uses the mwArray API. Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.

Настройте приложение и его внешний вид

В приложении Library Compiler можно настроить инсталлятор, настроить приложение и добавить больше информации о приложении.

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

  • Additional installer options — Путь к стандартной установке для сгенерированного инсталлятора и пользовательского выбора логотипа. Смотрите Изменение Путь к Установке.

  • Files required for your library to run — Дополнительные требуемые для запуска сгенерированного приложения файлы. Эти файлы включены в сгенерированное установщиком приложения. Смотрите Управляют Необходимыми Файлами в Проекте Компилятора.

  • Files installed for your end user — Файлы, которые установлены с вашим приложением.

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

Группируйте приложение

По окончании выбрав ваши упаковочные опции, сохраняете свой проект Library Compiler и генерируете пакетное приложение.

  1. Нажмите Package.

    В диалоговом окне Save Project задайте местоположение, чтобы сохранить проект.

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

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

    • Сгенерированы три папки: for_redistribution, for_redistribution_files_only, и for_testing.

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

    • Файл журнала PackagingLog.html содержит упаковочные результаты.

Создайте C++ разделяемая библиотека Используя compiler.build.cppSharedLibrary

Примечание

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

  1. Сохраните путь к addmatrix.m файл расположен в matlabroot\extern\examples\compilersdk\c_cpp\matrix.

    appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');
  2. Сохраните следующий код в файле примера под названием addmatrixSample1.m:

    a1 = [1 4 7; 2 5 8; 3 6 9];
    a2 = a1;
    a = addmatrix(a1, a2);

  3. Дополнительные опции могут быть заданы в compiler.build команда при помощи одного или нескольких следующих аргументов name-value.

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

    • 'AutoDetectDataFiles' — Отметьте, чтобы автоматически включать файлы данных.

    • 'DebugBuild' — Отметьте, чтобы включить отладочные символы.

    • 'Interface'— Интерфейсный API в виде 'matlab-data' (значение по умолчанию) или 'mwarray'. Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.

    • 'LibraryName'— Имя сгенерированной библиотеки.

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

    • 'SampleGenerationFiles'— Файлы примера MATLAB раньше генерировали демонстрационные файлы библиотеки C++. Для получения дополнительной информации смотрите Демонстрационное Создание Файла Драйвера.

    • 'Verbose'— Отметьте, чтобы отобразить информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.

  4. Создайте совместно использованную библиотеку C++ с помощью compiler.build.cppSharedLibrary функция. Используйте аргументы name-value, чтобы добавить файл примера и задать имя библиотеки и интерфейс API.

    buildResults = compiler.build.cppSharedLibrary(appFile,...
    'LibraryName','libmatrix',...
    'Interface','mwarray',...
    'SampleGenerationFiles','addmatrixSample1.m');

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

  5. Функция генерирует следующее в папке под названием libmatrixcppSharedLibrary в вашей текущей рабочей директории:

    • samples\addmatrixSample1_mwarray.cpp — Демонстрационный файл драйвера C++.

    • GettingStarted.html — Файл HTML, который содержит информацию об интеграции вашей разделяемой библиотеки.

    • libmatrix.cpp — Файл исходного кода C++.

    • libmatrix.def — Файл определения модуля, который предоставляет компоновщику информацию о модуле.

    • libmatrix.dll — Файл динамически подключаемой библиотеки.

    • libmatrix.exports — Файл экспорта, который содержит все нестатические имена функций.

    • libmatrix.h — Заголовочный файл C++.

    • libmatrix.lib — Импортируйте файл библиотеки.

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

    • readme.txt — Текстовый файл, который содержит упаковочную информацию.

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

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

    Примечание

    Сгенерированная библиотека не включает MATLAB Runtime или инсталлятор. Создать инсталлятор, использующий buildResults возразите, смотрите compiler.package.installer.

Реализуйте C++ mwArray API Разделяемая Библиотека с Приложением Драйвера

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

Эти шаги также объяснены в GettingStarted.html файл в for_redistribution_files_only папка. Перед запуском убедитесь, что вы, Установка и Конфигурирует MATLAB Runtime, и что вам установили компилятор C++.

  1. Скопируйте и вставьте сгенерированный файл кода драйвера C++ addmatrixSample1_mwarray.cpp от for_redistribution_files_only\samples папка в for_redistribution_files_only папка создала, когда вы создали разделяемую библиотеку.

  2. Используйте системную командную строку, чтобы перейти к for_redistribution_files_only папка, где вы скопировали сгенерированный демонстрационный файл кода драйвера C++.

  3. Скомпилируйте и соедините использование приложения mbuild в системной командной строке.

    mbuild addmatrixSample1_mwarray.cpp libmatrix.lib
  4. От системной командной строки, запущенной приложение. Если бы вы использовали демонстрационный код MATLAB на упаковочных шагах, это приложение должно возвратить тот же выходной параметр как код MATLAB.

    addmatrixSample1_mwarray.exe
    2 8 14
    4 10 16
    6 12 18
    

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

| |

Похожие темы