exponenta event banner

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.

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

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

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

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

Сведения о внедрении общей библиотеки см. в разделе Внедрение общей библиотеки C++ 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.

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

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

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

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

Создание нескольких библиотек C++ с помощью 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++, указанные как 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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

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

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

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

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

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

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

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

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

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

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

свернуть все

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

  • Тип построения, который является 'cppSharedLibrary'

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

    • GettingStarted.html

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

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

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

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

  • Параметры построения, указанные как CppSharedLibraryOptions объект

Представлен в R2021a