compiler.build.cSharedLibrary

Создание разделяемой библиотеки на С

Описание

пример

compiler.build.cSharedLibrary(FunctionFiles) создает общую библиотеку на C с помощью MATLAB® файлы, заданные FunctionFiles.

пример

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

пример

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

пример

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

Примеры

свернуть все

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

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

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

Создайте библиотеку на C, используя compiler.build.cSharedLibrary команда.

compiler.build.cSharedLibrary(appFile);

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

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

  • magicsquare.c - файл кода C.

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

  • magicsquare.dll - файл библиотеки динамических ссылок.

  • magicsquare.exports - Экспортирует файл, который содержит все нестатические имена функции.

  • magicsquare.h - Файл заголовка C.

  • magicsquare.lib - Импорт файла библиотеки.

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

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

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

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

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

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

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

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

compiler.build.cSharedLibrary(appFile,'LibraryName','MyMagicSquare',...
    'AdditionalFiles','myvars.mat',...
    'Verbose','on');

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

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

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');

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

opts = compiler.build.CSharedLibraryOptions(appFile,...
    'OutputDir','D:\Documents\MATLAB\work\CLibraryBatch',...
    'AutoDetectDataFiles','off',...
    'Verbose','on')
opts = 

  CSharedLibraryOptions with properties:

           EmbedArchive: on
          FunctionFiles: {'C:\Program Files\MATLAB\R2021a\extern\examples\compiler\magicsquare.m'}
             DebugBuild: off
            LibraryName: 'magicsquare'
         LibraryVersion: '1.0.0.0'
        AdditionalFiles: {}
    AutoDetectDataFiles: off
                Verbose: on
              OutputDir: 'D:\Documents\MATLAB\work\CLibraryBatch'

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

compiler.build.cSharedLibrary(opts);

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

opts.FunctionFiles = 'myMagic2.m';
compiler.build.cSharedLibrary(opts);

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

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

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

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

  Results with properties:

            BuildType: 'cSharedLibrary'
                Files: {4×1 cell}
              Options: [1×1 compiler.build.CSharedLibraryOptions]

The Files свойство содержит пути к следующим файлам:

  • magicsquare.dll

  • magicsquare.lib

  • magicsquare.h

  • GettingStarted.html

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

свернуть все

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

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

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

Опции сборки библиотеки C, заданные как compiler.build.CSharedLibraryOptions объект.

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

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

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

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

  • Если вы задаете это свойство равным 'off'затем функция генерирует развертываемый архив как отдельный файл.

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

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

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

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

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

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

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

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

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

Флаг для управления подробностями сборки, заданный как '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 объект содержит:

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

  • Пути к следующим скомпилированным файлам:

    • LibraryName.dll

    • LibraryName.lib

    • LibraryName.h

    • GettingStarted.html

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

Введенный в R2021a