Создание разделяемой библиотеки на С
compiler.build.cSharedLibrary( создает общую библиотеку на C с помощью MATLAB® файлы, заданные FunctionFiles)FunctionFiles.
compiler.build.cSharedLibrary( создает общую библиотеку на C с опциями, заданными с помощью одного или нескольких аргументов в виде имя-значение. Опции включают имя библиотеки, выходную директорию и дополнительные файлы, которые нужно включить.FunctionFiles,Name,Value)
compiler.build.cSharedLibrary( создает общую библиотеку на C с опциями, заданными с помощью opts)compiler.build.CSharedLibraryOptions opts объекта. Вы не можете задать какие-либо другие опции, используя аргументы имя-значение.
Создайте общую библиотеку на 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
FunctionFiles - Файлы, реализующие функции MATLABФайлы, реализующие функции MATLAB, заданные как вектор символов, строковый скаляр, строковые массивы или массив ячеек векторов символов. Пути к файлам могут быть относительно текущей рабочей директории или абсолютными. Файлы должны иметь .m расширение.
Пример: ["myfunc1.m","myfunc2.m"]
Типы данных: char | string | cell
opts - Опции сборки библиотеки Ccompiler.build.CSharedLibraryOptions объектОпции сборки библиотеки C, заданные как compiler.build.CSharedLibraryOptions объект.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
'Verbose','on''AdditionalFiles' - Дополнительные файлыДополнительные файлы для включения в общую библиотеку C, заданные как вектор символов, строковый скаляр, строковые массивы или массив ячеек из векторов символов. Пути к файлам могут быть относительно текущей рабочей директории или абсолютными.
Пример: 'AdditionalFiles',["myvars.mat","data.txt"]
Типы данных: char | string | cell
'AutoDetectDataFiles' - Флаг для автоматического включения файлов данных'on' (по умолчанию) | логическое значение включения/выключенияФлаг для автоматического включения файлов данных, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.
Если вы задаете это свойство равным 'on', затем файлы данных, которые вы предоставляете в качестве входов для определенных функций (таких как load и fopen) автоматически включаются в общую библиотеку.
Если вы задаете это свойство равным 'off', затем необходимо добавить файлы данных в общую библиотеку с помощью AdditionalFiles опция.
Пример: 'AutoDetectDataFiles','off'
Типы данных: logical
'DebugBuild' - Флаг для включения отладки символов'off' (по умолчанию) | логическое значение включения/выключенияФлаг для включения отладки символов, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.
Если вы задаете это свойство равным 'on', затем скомпилированная библиотека содержит символы отладки.
Если вы задаете это свойство равным 'off', тогда скомпилированная библиотека не содержит символов отладки.
Пример: 'DebugBuild','on'
Типы данных: logical
'EmbedArchive' - Флаг для встраивания развертываемого архива'on' (по умолчанию) | логическое значение включения/выключенияФлаг для встраивания развертываемого архива, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.
Если вы задаете это свойство равным 'on'затем функция встраивает развертываемый архив в общую библиотеку.
Если вы задаете это свойство равным 'off'затем функция генерирует развертываемый архив как отдельный файл.
Пример: 'EmbedArchive','off'
Типы данных: logical
'LibraryName' - Имя разделяемой библиотеки на СИмя общей библиотеки C, заданное как вектор символов или строковый скаляр. Имя по умолчанию сгенерированной библиотеки является первой записью FunctionFiles аргумент.
Пример: 'LibraryName','mymagic'
Типы данных: char | string
'OutputDir' - Путь к выходной директорииПуть к выходу директории, где сохраняются файлы сборки, задается в виде вектора символов или строкового скаляра. Путь может быть относительно текущей рабочей директории или абсолютным.
Именем по умолчанию для папки сборки является имя библиотеки, добавленное в cSharedLibrary.
Пример: 'OutputDir','D:\Documents\MATLAB\work\mymagiccSharedLibrary'
Типы данных: char | string
'Verbose' - Флаг для управления подробностями сборки'off' (по умолчанию) | логическое значение включения/выключенияФлаг для управления подробностями сборки, заданный как 'on' или 'off', или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства как логическое значение. Значение сохранено в виде логического значения on/off типа matlab.lang.OnOffSwitchState.
Если вы задаете это свойство равным 'on', затем в командном окне MATLAB отображается информация о прогрессе, указывающая на выход компилятора в процессе сборки.
Если вы задаете это свойство равным 'off'затем командное окно не отображает информацию о прогрессе.
Пример: 'Verbose','on'
Типы данных: logical
results - Результаты сборкиcompiler.build.Results объектРезультаты построения, возвращенные как compiler.build.Results объект. The Results объект содержит:
Тип сборки, который 'cSharedLibrary'
Пути к следующим скомпилированным файлам:
LibraryName.dll
LibraryName.lib
LibraryName.h
GettingStarted.html
Опции сборки, заданные как CSharedLibraryOptions объект
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.