exponenta event banner

compiler.build.cSharedLibrary

Создать общую библиотеку C

Описание

пример

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, которую необходимо развернуть как общую библиотеку C. Для этого примера используйте файл magicsquare.m расположен в matlabroot\extern\examples\compiler.

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.

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

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

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

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

Для этого примера используйте файл magicsquare.m расположен в matlabroot\extern\examples\compiler.

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 с помощью compiler.build.CSharedLibraryOptions объект.

Для этого примера используйте файл magicsquare.m расположен в matlabroot\extern\examples\compiler.

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\examples\compiler.

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

  Results with properties:

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

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. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл 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

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

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

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

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

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

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

свернуть все

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

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

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

    • LibraryName.dll

    • LibraryName.lib

    • LibraryName.h

    • GettingStarted.html

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

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