Создайте совместно использованную библиотеку C++
compiler.build.cppSharedLibrary( создает совместно использованную библиотеку C++ с помощью MATLAB® файлы заданы FunctionFiles)FunctionFiles. Установите поддерживаемый компилятор C++ перед использованием этой функции.
compiler.build.cppSharedLibrary( создает совместно использованную библиотеку C++ с опциями, заданными с помощью одних или нескольких аргументов name-value. Опции включают интерфейс API, имя библиотеки, и выводят директорию.FunctionFiles,Name,Value)
compiler.build.cppSharedLibrary( создает совместно использованную библиотеку C++ с опциями, заданными с помощью opts)compiler.build.CppSharedLibraryOptions объект opts. Вы не можете задать никакие другие опции с помощью аргументов name-value.
Создайте совместно использованную библиотеку 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);
Функция сборки генерирует следующие файлы в папке под названием addmatrixcppSharedLibrary в вашей текущей рабочей директории:
GettingStarted.html — Файл HTML, который содержит информацию об интеграции вашей разделяемой библиотеки.
includedSupportPackages.txt — Текстовый файл, который перечисляет все файлы поддержки, включенные в библиотеку.
mccExcludedFiles.log — Файл журнала, который содержит список любых функций тулбокса, которые не были включены в приложение. Для получения информации о неподдерживаемых функциях смотрите Ограничения MATLAB Compiler.
readme.txt — Файл Readme, который содержит информацию о необходимых условиях развертывания и списке файлов к пакету для развертывания.
requiredMCRProducts.txt — Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.
unresolvedSymbols.txt — Текстовый файл, который содержит информацию о неразрешенных символах.
v2\generic_interface\readme.txt — Файл Readme, который содержит информацию о необходимых условиях развертывания и списке файлов к пакету для развертывания.
v2\generic_interface\magicsquare.ctf — Файл технологии компонентов, который содержит развертываемый архив.
Чтобы реализовать вашу разделяемую библиотеку, смотрите Реализацию MATLAB Data API C++ Разделяемая Библиотека с Приложением Драйвера.
Создайте библиотеку C++ и настройте ее с помощью аргументов name-value.
В данном примере используйте файл 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 команда. Используйте аргументы name-value, чтобы задать имя библиотеки, добавить файл примера и использовать mwArray интерфейс.
compiler.build.cppSharedLibrary(appFile,'LibraryName','mwa_addmatrix',... 'SampleGenerationFiles','addmatrixSample1.m',... 'Interface','mwarray');
Функция сборки создает следующие файлы в папке под названием mwa_addmatrixcppSharedLibrary в вашей текущей рабочей директории:
samples\addmatrixSample1_mwarray.cpp — Демонстрационный файл драйвера C++.
GettingStarted.html — Файл, который содержит информацию об интеграции вашей разделяемой библиотеки.
includedSupportPackages.txt — Текстовый файл, который перечисляет все файлы поддержки, включенные в библиотеку.
mwa_addmatrix.cpp — Файл исходного кода C++.
mwa_addmatrix.def — Файл определения модуля, который предоставляет компоновщику информацию о модуле.
mwa_addmatrix.dll — Файл динамически подключаемой библиотеки.
mwa_addmatrix.exports — Файл экспорта, который содержит все нестатические имена функций.
mwa_addmatrix.h — Заголовочный файл C++.
mwa_addmatrix.lib — Импортируйте файл библиотеки.
mccExcludedFiles.log — Файл журнала, который содержит список любых функций тулбокса, которые не были включены в приложение. Для получения информации о неподдерживаемых функциях смотрите Ограничения MATLAB Compiler.
readme.txt — Файл Readme, который содержит информацию о необходимых условиях развертывания и списке файлов к пакету для развертывания.
requiredMCRProducts.txt — Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.
unresolvedSymbols.txt — Текстовый файл, который содержит информацию о неразрешенных символах.
Чтобы реализовать вашу разделяемую библиотеку, смотрите Реализацию C++ mwArray API Разделяемая Библиотека с Приложением Драйвера.
Создайте несколько библиотек 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. Используйте аргументы name-value, чтобы задать общую выходную директорию, включить отладочные символы и включить многословный выход.
opts = compiler.build.CppSharedLibraryOptions(appFile,... 'OutputDir','D:\Documents\MATLAB\work\CppLibraryBatch',... 'DebugBuild,'on',... 'Verbose','on')
opts =
CppSharedLibraryOptions with properties:
Interface: 'matlab-data'
LibraryVersion: '1.0.0.0'
SampleGenerationFiles: {}
FunctionFiles: {'C:\Program Files\MATLAB\R2021b\extern\examples\compilersdk\c_cpp\addmatrix.m'}
DebugBuild: on
LibraryName: 'addmatrix'
AdditionalFiles: {}
AutoDetectDataFiles: on
SupportPackages: {'autodetect'}
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}
IncludedSupportPackages: {}
Options: [1×1 compiler.build.CppSharedLibraryOptions]Files свойство содержит пути к v2 папка и GettingStarted.html.
FunctionFiles — Файлы, реализующие функции MATLABФайлы, реализующие функции MATLAB в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта. Файлы должны иметь .m расширение.
Пример: ["myfunc1.m","myfunc2.m"]
Типы данных: char | string | cell
opts — Библиотека C++ создает опцииcompiler.build.CppSharedLibraryOptions объектБиблиотека C++ создает опции в виде a compiler.build.CppSharedLibraryOptions объект.
Задайте дополнительные разделенные запятой пары 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 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем файлы данных, которые вы предоставляете как входные параметры определенным функциям (такой как load и fopen) автоматически включены в разделяемую библиотеку.
Если вы устанавливаете это свойство на 'off', затем необходимо добавить файлы данных в разделяемую библиотеку с помощью AdditionalFiles свойство.
Пример: 'AutoDetectDataFiles','off'
Типы данных: логический
DebugBuild — Отметьте, чтобы включить отладочные символы'off' (значение по умолчанию) | логическое значение включения - выключенияОтметьте, чтобы включить отладочные символы в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем скомпилированная библиотека содержит отладочные символы.
Если вы устанавливаете это свойство на 'off', затем скомпилированная библиотека не содержит отладочные символы.
Пример: 'DebugBuild','on'
Типы данных: логический
Interface — Интерфейсный API'matlab-data' (значение по умолчанию) | 'mwarray'Интерфейсный API в виде одной из следующих опций:
'matlab-data' — Сгенерируйте совместно использованные библиотеки с помощью MATLAB Data API.
'mwarray' — Сгенерируйте совместно использованные библиотеки с помощью mwArray API.
Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.
Пример: 'Interface','mwarray'
LibraryName — Имя C++ совместно использовало библиотекуИмя C++ совместно использовало библиотеку в виде вектора символов или строкового скаляра. Имя по умолчанию сгенерированной библиотеки является первой записью FunctionFiles аргумент.
Пример: 'LibraryName','mymagic'
Типы данных: char | string
OutputDir — Путь, чтобы вывести директориюПуть к выходной директории, где файлы типа "build" сохранены в виде вектора символов или строкового скаляра. Путь может быть относительно текущей рабочей директории или абсолюта.
Имя по умолчанию папки сборки является именем библиотеки, добавленным с cppSharedLibrary.
Пример: 'OutputDir','D:\Documents\MATLAB\work\mymagiccppSharedLibrary'
Типы данных: char | string
SampleGenerationFiles — Файлы примера MATLABФайлы примера MATLAB раньше генерировали демонстрационные файлы библиотеки C++ для функций, включенных в библиотеке в виде вектора символов, строкового скаляра, массива строк или массива ячеек из символьных векторов. Пути к файлам могут быть относительно текущей рабочей директории или абсолюта. Файлы должны иметь .m расширение. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.
Пример: 'SampleGenerationFiles',["sample1.m","sample2.m"]
Типы данных: char | string | cell
SupportPackages — Пакеты поддержки'autodetect' (значение по умолчанию) | 'none' | строковый скаляр | массив ячеек из символьных векторов | массив строкПакеты поддержки, чтобы включать в виде одной из следующих опций:
'autodetect' (значение по умолчанию) — Процесс анализа зависимостей обнаруживает и включает необходимые пакеты поддержки автоматически.
'none' — Никакие пакеты поддержки не включены. Используя эту опцию может вызвать ошибки периода выполнения.
Строковый скаляр, вектор символов или массив ячеек из символьных векторов — Только заданные пакеты поддержки включены. Чтобы перечислить установленные пакеты поддержки или используемых определенным файлом, смотрите compiler.codetools.deployableSupportPackages.
.
Пример: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}
Типы данных: char | string | cell
Verbose — Отметьте, чтобы управлять многословием сборки'off' (значение по умолчанию) | логическое значение включения - выключенияОтметьте, чтобы управлять многословием сборки в виде 'on' или 'off', или как числовой или логический 1 TRUE) или 0 ложь). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом можно использовать значение этого свойства как логическое значение. Значение хранится как логическое значение включения - выключения типа matlab.lang.OnOffSwitchState.
Если вы устанавливаете это свойство на 'on', затем окно команды MATLAB отображает информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.
Если вы устанавливаете это свойство на 'off', затем командное окно не отображает информацию о прогрессе.
Пример: 'Verbose','on'
Типы данных: логический
results — Создайте результатыcompiler.build.Results объектСоздайте результаты, возвращенные как compiler.build.Results объект. Results объект содержит:
Создайте тип, который является 'cppSharedLibrary'
Пути к следующему:
GettingStarted.html
v2 папка (matlab-data взаимодействуйте через интерфейс только),
(LibraryName.dllmwArray взаимодействуйте через интерфейс только),
(LibraryName.libmwArray взаимодействуйте через интерфейс только),
(LibraryNameHmwArray взаимодействуйте через интерфейс только),
Список включенных пакетов поддержки
Создайте опции в виде CppSharedLibraryOptions объект
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.