compiler.build.cppSharedLibrary

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

Описание

пример

compiler.build.cppSharedLibrary(FunctionFiles) создает совместно использованную библиотеку C++ с помощью файлов MATLAB®, заданных FunctionFiles. Установите поддерживаемый компилятор C++ перед использованием этой функции.

пример

compiler.build.cppSharedLibrary(FunctionFiles,Name,Value) создает совместно использованную библиотеку C++ с опциями, заданными с помощью одного или нескольких аргументов значения имени. Опции включают интерфейс API, имя библиотеки, и выводят директорию.

пример

compiler.build.cppSharedLibrary(opts) создает совместно использованную библиотеку C++ с опциями, заданными с помощью compiler.build.CppSharedLibraryOptions объект opts. Вы не можете задать никакие другие опции с помощью аргументов значения имени.

пример

results = compiler.build.cppSharedLibrary(___) возвращает информацию о сборке как compiler.build.Results объект с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах. Информация о сборке состоит из типа сборки, путей к скомпилированным файлам и опций сборки.

Примеры

свернуть все

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

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

appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');

Создайте библиотеку C++ с помощью compiler.build.cppSharedLibrary команда.

compiler.build.cppSharedLibrary(appFile);

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

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

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

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

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

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

  • v2\generic_interface\magicsquare.ctf — Файл технологии компонентов, который содержит развертываемый архив.

Чтобы реализовать вашу разделяемую библиотеку, смотрите Реализацию MATLAB Data API C++ Разделяемая Библиотека с Приложением Драйвера.

Создайте библиотеку C++ и настройте ее с помощью аргументов значения имени.

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

appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');

Сохраните следующий код в файле примера под названием addmatrixSample1.m:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы реализовать вашу разделяемую библиотеку, смотрите Реализацию C++ mwArray API Разделяемая Библиотека с Приложением Драйвера.

Создайте несколько библиотек C++ с помощью a compiler.build.CppSharedLibraryOptions объект.

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

appFile = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','addmatrix.m');

Создайте CppSharedLibraryOptions объект с помощью appFile. Используйте аргументы значения имени, чтобы задать общую выходную директорию, добавить MAT-файл и включить многословный выход.

opts = compiler.build.CppSharedLibraryOptions(appFile,...
    'OutputDir','D:\Documents\MATLAB\work\CppLibraryBatch',...
    'AdditionalFiles','myvars.mat',...
    'Verbose','on')
opts = 

  CppSharedLibraryOptions with properties:

                Interface: 'matlab-data'
           LibraryVersion: '1.0.0.0'
    SampleGenerationFiles: {}
            FunctionFiles: {'C:\Program Files\MATLAB\R2021a\extern\examples\compilersdk\c_cpp\addmatrix.m'}
               DebugBuild: off
              LibraryName: 'addmatrix'
          AdditionalFiles: {'D:\Documents\MATLAB\work\myvars.mat'}
      AutoDetectDataFiles: on
                  Verbose: on
                OutputDir: 'D:\Documents\MATLAB\work\CppLibraryBatch'

Создайте совместно использованную библиотеку C++ с помощью CppSharedLibraryOptions объект.

compiler.build.cppSharedLibrary(opts);

Создать новую библиотеку с помощью файла функции subtractmatrix.m с теми же опциями используйте запись через точку, чтобы изменить FunctionFiles аргумент существующего CppSharedLibrary объект прежде, чем запустить сборку функционирует снова.

opts.FunctionFiles = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix','subtractmatrix.m');
compiler.build.cppSharedLibrary(opts);

Путем изменения FunctionFiles аргумент и перекомпиляция, можно скомпилировать несколько библиотек с помощью того же объекта опций.

Создайте библиотеку C++ и сохраните информацию о типе сборки, скомпилированных файлах, и создайте опции к compiler.build.Results объект.

Компиляция с помощью файла magicsquare.m расположенный в matlabroot\extern\examples\compiler.

results = compiler.build.cppSharedLibrary('magicsquare.m')
results = 

  Results with properties:

            BuildType: 'cppSharedLibrary'
                Files: {2×1 cell}
              Options: [1×1 compiler.build.CppSharedLibraryOptions]

Files свойство содержит пути к v2 папка и GettingStarted.html.

Входные параметры

свернуть все

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

Пример: ["myfunc1.m","myfunc2.m"]

Типы данных: char | string | cell

Библиотека C++ создает опции в виде a compiler.build.CppSharedLibraryOptions объект.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Verbose','on'

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

Пример: 'AdditionalFiles',["myvars.mat","data.txt"]

Типы данных: char | string | cell

Отметьте, чтобы автоматически включать файлы данных в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем файлы данных, которые вы предоставляете как входные параметры определенным функциям (такой как load и fopen) автоматически включены в разделяемую библиотеку.

  • Если вы устанавливаете это свойство на 'off', затем необходимо добавить файлы данных в разделяемую библиотеку с помощью AdditionalFiles свойство.

Пример: 'AutoDetectDataFiles','off'

Типы данных: логический

Отметьте, чтобы включить отладочные символы в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

  • Если вы устанавливаете это свойство на 'on', затем скомпилированная библиотека содержит отладочные символы.

  • Если вы устанавливаете это свойство на 'off', затем скомпилированная библиотека не содержит отладочные символы.

Пример: 'DebugBuild','on'

Типы данных: логический

Интерфейсный API в виде одной из следующих опций:

  • 'matlab-data' — Сгенерируйте совместно использованные библиотеки с помощью MATLAB Data API.

  • 'mwarray' — Сгенерируйте совместно использованные библиотеки с помощью mwArray API.

Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.

Пример: 'Interface','mwarray'

Имя C++ совместно использовало библиотеку в виде вектора символов или строкового скаляра. Имя по умолчанию сгенерированной библиотеки является первой записью FunctionFiles аргумент.

Пример: 'LibraryName','mymagic'

Типы данных: char | string

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

Имя по умолчанию папки сборки является именем библиотеки, добавленным с cppSharedLibrary.

Пример: 'OutputDir','D:\Documents\MATLAB\work\mymagiccppSharedLibrary'

Типы данных: char | string

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

Пример: 'SampleGenerationFiles',["sample1.m","sample2.m"]

Типы данных: char | string | cell

Отметьте, чтобы управлять многословием сборки в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.

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

  • Если вы устанавливаете это свойство на 'off', затем командное окно не отображает информацию о прогрессе.

Пример: 'Verbose','on'

Типы данных: логический

Выходные аргументы

свернуть все

Создайте результаты, возвращенные как compiler.build.Results объект. Results объект содержит:

  • Создайте тип, который является 'cppSharedLibrary'

  • Пути к следующему:

    • GettingStarted.html

    • v2 папка (matlab-data интерфейс)

    • LibraryName.dll (mwArray интерфейс)

    • LibraryName.lib (mwArray интерфейс)

    • LibraryNameH (mwArray интерфейс)

  • Создайте опции в виде CppSharedLibraryOptions объект

Введенный в R2021a