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 Limitations.

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

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

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

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

Для реализации вашей общей библиотеки смотрите Реализация общей библиотеки MATLAB Data API с приложением драйвера.

Создайте библиотеку 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 Limitations.

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

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

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

Для реализации вашей общей библиотеки смотрите Реализация общей библиотеки API C++ mwArray с приложением драйвера.

Создайте несколько библиотек 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\примеры\компилятор.

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

  Results with properties:

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

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

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

свернуть все

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

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

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

Опции сборки библиотеки C++, заданные как 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 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

Типы данных: logical

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

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

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

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

Типы данных: logical

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

  • 'matlab-data' - Создавайте общие библиотеки с помощью MATLAB Data API.

  • 'mwarray' - Создавайте общие библиотеки с помощью mwArray API.

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

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

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

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

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

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

Именем по умолчанию для папки сборки является имя библиотеки, добавленное в 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 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.

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

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

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

Типы данных: logical

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

свернуть все

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

  • Тип сборки, который 'cppSharedLibrary'

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

    • GettingStarted.html

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

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

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

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

  • Опции сборки, заданные как CppSharedLibraryOptions объект

Введенный в R2021a
Для просмотра документации необходимо авторизоваться на сайте