Создайте общую библиотеку C++
compiler.build.cppSharedLibrary(
создает общую библиотеку C++ с помощью MATLAB® файлы, заданные FunctionFiles
)FunctionFiles
. Установите поддерживаемый компилятор C++ перед использованием этой функции.
compiler.build.cppSharedLibrary(
создает общую библиотеку C++ с опциями, заданными с помощью одного или нескольких аргументов имя-значение. Опции включают API интерфейса, имя библиотеки и выходная директория.FunctionFiles
,Name,Value
)
compiler.build.cppSharedLibrary(
создает общую библиотеку C++ с опциями, заданными с помощью opts
)compiler.build.CppSharedLibraryOptions
opts объекта
. Вы не можете задать какие-либо другие опции, используя аргументы имя-значение.
Создайте общую библиотеку 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 Compiler Limitations.
readme.txt
- файл Readme, содержащий информацию о необходимых условиях развертывания и списке файлов, подлежащих упаковке для развертывания.
requiredMCRProducts.txt
- Текстовый файл, содержащий идентификаторы продуктов, требуемых MATLAB Runtime для запуска приложения.
unresolvedSymbols.txt
- Текстовый файл, содержащий информацию о неразрешенных символах.
v2\generic_interface\magicsquare.ctf
- Файл технологии компонента, содержащий развертываемый архив.
Для реализации вашей общей библиотеки смотрите Реализация общей библиотеки 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 Compiler Limitations.
readme.txt
- файл Readme, содержащий информацию о необходимых условиях развертывания и списке файлов, подлежащих упаковке для развертывания.
requiredMCRProducts.txt
- Текстовый файл, содержащий идентификаторы продуктов, требуемых MATLAB Runtime для запуска приложения.
unresolvedSymbols.txt
- Текстовый файл, содержащий информацию о неразрешенных символах.
Для реализации вашей общей библиотеки смотрите Реализация общей библиотеки API C++ mwArray с приложением драйвера.
Создайте несколько библиотек 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
. Используйте аргументы имя-значение, чтобы задать общую выходную директорию, добавить 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\примеры\компилятор
results = compiler.build.cppSharedLibrary('magicsquare.m')
results = Results with properties: BuildType: 'cppSharedLibrary' Files: {2×1 cell} Options: [1×1 compiler.build.CppSharedLibraryOptions]
The Files
свойство содержит пути к v2
папка и GettingStarted.html
.
FunctionFiles
- Файлы, реализующие функции MATLABФайлы, реализующие функции MATLAB, заданные как вектор символов, строковый скаляр, строковые массивы или массив ячеек векторов символов. Пути к файлам могут быть относительно текущей рабочей директории или абсолютными. Файлы должны иметь .m
расширение.
Пример: ["myfunc1.m","myfunc2.m"]
Типы данных: char
| string
| cell
opts
- Опции сборки библиотеки C++compiler.build.CppSharedLibraryOptions
объектОпции сборки библиотеки C++, заданные как 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
(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
'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'
- Путь к выходной директорииПуть к выходу директории, где сохраняются файлы сборки, задается в виде вектора символов или строкового скаляра. Путь может быть относительно текущей рабочей директории или абсолютным.
Именем по умолчанию для папки сборки является имя библиотеки, добавленное в cppSharedLibrary
.
Пример: 'OutputDir','D:\Documents\MATLAB\work\mymagiccppSharedLibrary'
Типы данных: char
| string
'SampleGenerationFiles'
- Образцы файлов MATLABMATLAB выборки файлов, используемых для генерации образцов файлов библиотеки C++ для функций, включенных в библиотеку, заданные как вектор символов, строковый скаляр, строковые массивы или массив ячеек из векторов символов. Пути к файлам могут быть относительно текущей рабочей директории или абсолютными. Файлы должны иметь .m
расширение. Для получения дополнительной информации и ограничений см. Пример создания файла драйвера.
Пример: 'SampleGenerationFiles',["sample1.m","sample2.m"]
Типы данных: char
| string
| cell
'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
объект содержит:
Тип сборки, который 'cppSharedLibrary'
Пути к следующим:
GettingStarted.html
v2
папка (matlab-data
интерфейс)
(LibraryName
.dllmwArray
интерфейс)
(LibraryName
.libmwArray
интерфейс)
(LibraryName
.hmwArray
интерфейс)
Опции сборки, заданные как CppSharedLibraryOptions
объект
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.