Поддерживаемая платформа: Windows®, Linux®, Mac
То В этом примере показано, как создать C++, совместно использовало библиотеку от функции MATLAB®. Можно интегрировать сгенерированную библиотеку в приложение C++. Этот пример также показывает, как вызвать совместно использованную библиотеку C++ из приложения C++. Целевая система не требует, чтобы лицензированная копия MATLAB запустила приложение.
В MATLAB исследуйте код MATLAB, который вы хотите упакованный. В данном примере открытый addmatrix.m
расположенный в
.matlabroot
\extern\examples\compilersdk\c_cpp\matrix
В командной строке MATLAB введите:
addmatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])
Выход:
ans = 2 8 14 4 10 16 6 12 18
На вкладке MATLAB Apps, на ультраправом из раздела Apps, кликают по стреле. В Application Deployment нажмите Library Compiler.
В качестве альтернативы можно открыть приложение Library Compiler из командной строки MATLAB путем ввода:
libraryCompiler
В разделе Type панели инструментов нажмите C++ Shared Library.
В окне проекта приложения Library Compiler задайте файлы приложения MATLAB, которое вы хотите развернуть.
В разделе Exported Functions панели инструментов щелкнуть.
В окне Add Files просмотрите к папке в качестве примера и выберите функцию, которую вы хотите группировать. Нажмите Open.
Функция добавляется к списку экспортируемых файлов функции. Повторите этот шаг, чтобы группировать несколько файлов в том же приложении.
В данном примере перейдите к
и выберите matlabroot
\extern\examples\compilersdk\c_cpp\matrixaddmatrix.m
.
В разделе Packaging Options панели инструментов решите, включать ли инсталлятор MATLAB Runtime в сгенерированное приложение путем выбора одной из опций:
Runtime downloaded from web — Сгенерируйте инсталлятор, который загружает MATLAB Runtime и устанавливает его наряду с развернутым приложением MATLAB. Можно задать имя файла инсталлятора.
Runtime included in package — Сгенерируйте приложение, которое включает инсталлятор MATLAB Runtime. Можно задать имя файла инсталлятора.
Примечание
В первый раз, когда вы выбираете эту опцию, вам предлагают загрузить инсталлятор MATLAB Runtime.
Поле Library Name автоматически заполняется с addmatrix
как имя упакованной разделяемой библиотеки. Переименуйте его как libmatrix
. То же имя выполняется в реализации разделяемой библиотеки.
Добавьте файлы MATLAB, чтобы сгенерировать демонстрационные файлы драйвера C++. Несмотря на то, что файлы драйвера C++ не необходимы, чтобы создать совместно использованные библиотеки, они используются, чтобы продемонстрировать, как Реализовать MATLAB Data API C++ Разделяемая Библиотека с Приложением Драйвера.
В разделе Samples выберите Create New Sample и нажмите addmatrix.m
. Отредактируйте файл MATLAB, который открывается.
% Sample script to demonstrate execution of function a = addmatrix(a1, a2) a1 = [1 4 7; 2 5 8; 3 6 9]; % Initialize a1 here a2 = a1; % Initialize a2 here a = addmatrix(a1, a2);
Сохраните файл и возвратитесь к приложению Library Compiler. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.
Выберите тип API для совместно использованных библиотек сгенерированного C++. В разделе API selection в нижней части выберите Create interface that uses the MATLAB Data API. Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.
Можно настроить инсталлятор, настроить приложение и добавить больше информации о приложении можно следующим образом:
Информация о библиотеке Информация о развертываемом приложении. Можно также настроить внешний вид приложения путем изменения значка приложения и экрана-заставки. Сгенерированный установщик использует эту информацию, чтобы заполнить установленные метаданные приложений. Смотрите Настраивают Инсталлятор.
Additional installer options — Путь к стандартной установке для сгенерированного инсталлятора и пользовательского выбора логотипа. Смотрите Изменение Путь к Установке.
Files required for your library to run — Дополнительные требуемые для запуска сгенерированного приложения файлы. Эти файлы включены в сгенерированное установщиком приложения. Смотрите Управляют Необходимыми Файлами в Проекте Компилятора.
Files installed for your end user — Файлы, которые установлены с вашим приложением.
Чтобы сгенерировать пакетное приложение, нажмите Package.
В диалоговом окне Save Project задайте местоположение, чтобы сохранить проект.
В диалоговом окне Package проверьте, что Open output folder when process completes выбран.
Когда упаковочный процесс будет завершен, исследуйте сгенерированный результат.
Три папки сгенерированы в целевом месте папки: for_redistribution
, for_redistribution_files_only
, и for_testing
.
Для получения дополнительной информации о файлах, сгенерированных в этих папках, смотрите Файлы, Сгенерированные После Упаковки функций MATLAB.
PackagingLog.txt
— Файл журнала сгенерирован MATLAB Compiler™.
compiler.build.cppSharedLibrary
Примечание
Если вы уже создали совместно использованную библиотеку C++ с помощью приложения Library Compiler, можно пропустить этот раздел. Однако, если вы хотите знать, как создать совместно использованную библиотеку C++ из окна команды MATLAB с помощью программируемого подхода, следуйте этим инструкциям.
Сохраните путь к 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
функция. Используйте аргументы значения имени, чтобы добавить файл примера и задать имя библиотеки.
buildResults = compiler.build.cppSharedLibrary(appFile,... 'LibraryName','libmatrix',... 'SampleGenerationFiles','addmatrixSample1.m');
compiler.build.Results
объект buildResults
содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.
Этот синтаксис генерирует следующие файлы в папке под названием libmatrixcppSharedLibrary
в вашей текущей рабочей директории:
samples\addmatrixSample1_mda.cpp
— Демонстрационный файл драйвера C++.
v2\generic_interface\libmatrix.ctf
— Файл технологии компонентов, который содержит развертываемый архив.
v2\generic_interface\readme.txt
— Текстовый файл, который содержит упаковочную информацию.
GettingStarted.html
— Файл HTML, который содержит информацию об интеграции вашей разделяемой библиотеки.
mccExcludedFiles.log
— Файл журнала, который содержит список любых функций тулбокса, которые не были включены в приложение. Для получения информации о неподдерживаемых функциях смотрите Ограничения MATLAB Compiler.
readme.txt
— Текстовый файл, который содержит упаковку и интерфейсную информацию.
requiredMCRProducts.txt
— Текстовый файл, который содержит идентификаторы продукта продуктов, требуемых MATLAB Runtime запустить приложение.
unresolvedSymbols.txt
— Текстовый файл, который содержит информацию о неразрешенных символах.
Примечание
Сгенерированная библиотека не включает MATLAB Runtime или инсталлятор.
Дополнительные опции могут быть заданы в compiler.build
команда при помощи одного или нескольких следующих аргументов значения имени.
'AdditionalFiles'
— Путь к дополнительным файлам, чтобы включать в разделяемую библиотеку.
'AutoDetectDataFiles'
— Отметьте, чтобы автоматически включать файлы данных.
'DebugBuild'
— Отметьте, чтобы включить отладочные символы.
'Interface'
— Интерфейсный API в виде 'matlab-data'
(значение по умолчанию) или 'mwarray'
. Для получения дополнительной информации смотрите Выбор API для C++ Разделяемая Библиотека.
'LibraryName'
— Имя сгенерированной библиотеки.
'OutputDir'
— Путь к выходной директории, которая содержит сгенерированные файлы.
'SampleGenerationFiles'
— Файлы примера MATLAB раньше генерировали демонстрационные файлы библиотеки C++. Для получения дополнительной информации смотрите Демонстрационное Создание Файла Драйвера.
'Verbose'
— Отметьте, чтобы отобразить информацию о прогрессе, указывающую на выход компилятора во время процесса сборки.
После упаковки вашего C++ совместно использовал библиотеки, можно вызвать их из приложения C++. Приложение C++, которое вы создаете, использует демонстрационный код драйвера C++, сгенерированный во время упаковки. Код драйвера C++ вызывает совместно использованные библиотеки C++, и он основан на демонстрационном файле MATLAB, который вы выбрали на предыдущих шагах настройки.
Эти шаги также объяснены в GettingStarted.html
файл. Перед запуском убедитесь, что вы, Установка и Конфигурирует MATLAB Runtime, и что вам установили компилятор C++.
Скопируйте и вставьте сгенерированный файл кода драйвера C++ от samples
папка в v2\generic_interface
папка создала, когда вы создали разделяемую библиотеку.
Используйте системную командную строку, чтобы перейти к generic_interface
папка, где вы скопировали демонстрационный файл кода драйвера C++.
Скомпилируйте и соедините использование приложения mbuild
в системной командной строке.
mbuild addmatrixSample1.cpp
Запустите приложение от системной командной строки.
addmatrixSample1.exe
Примечание
Для получения информации о том, как получить массив структур, массив ячеек или вектор символов от feval
вызовите, смотрите файлы subtractmatrix.m
и subtractmatrix_mda.cpp
в
.matlabroot
\extern\examples\compilersdk\c_cpp\matrix
compiler.build.cppSharedLibrary
| deploytool
| libraryCompiler
| mcc