Поддерживаемая платформа: 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++ не необходимы, чтобы создать совместно использованные библиотеки, они используются, чтобы продемонстрировать, как Реализовать C++ mwArray API Разделяемая Библиотека с Приложением Драйвера.
В разделе Samples выберите Create New Sample и нажмите addmatrix.m
. Файл MATLAB открывается для вас, чтобы отредактировать. Задайте входные переменные по мере необходимости для вашего приложения, сохраните файл и возвратитесь к приложению Library Compiler. Для получения дополнительной информации и ограничения, смотрите Демонстрационное Создание Файла Драйвера.
Выберите тип API для совместно использованных библиотек сгенерированного C++. В разделе API selection в нижней части выберите Create interface that uses the mwArray 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
Примечание
Если вы уже создали автономное приложение с помощью приложения 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
функция. Используйте аргументы значения имени, чтобы добавить файл примера и задать имя библиотеки и интерфейс API.
buildResults = compiler.build.cppSharedLibrary(appFile,... 'LibraryName','libmatrix',... 'Interface','mwarray',... 'SampleGenerationFiles','addmatrixSample1.m');
compiler.build.Results
объект buildResults
содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.
Этот синтаксис генерирует следующее в папке под названием libmatrixcppSharedLibrary
в вашей текущей рабочей директории:
samples\addmatrixSample1_mwarray.cpp
— Демонстрационный файл драйвера C++.
GettingStarted.html
— Файл HTML, который содержит информацию об интеграции вашей разделяемой библиотеки.
libmatrix.cpp
— Файл исходного кода C++.
libmatrix.def
— Файл определения модуля, который предоставляет компоновщику информацию о модуле.
libmatrix.dll
— Файл динамически подключаемой библиотеки.
libmatrix.exports
— Файл экспорта, который содержит все нестатические имена функций.
libmatrix.h
— Заголовочный файл C++.
libmatrix.lib
— Импортируйте файл библиотеки.
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
файл в for_redistribution_files_only
папка. Перед запуском убедитесь, что вы, Установка и Конфигурирует MATLAB Runtime, и что вам установили компилятор C++.
Скопируйте и вставьте сгенерированный файл кода драйвера C++ от for_redistribution_files_only\samples
папка в for_redistribution_files_only
папка создала, когда вы создали разделяемую библиотеку.
Используйте системную командную строку, чтобы перейти к for_redistribution_files_only
папка, где вы скопировали сгенерированный демонстрационный файл кода драйвера C++.
Скомпилируйте и соедините использование приложения mbuild
в системной командной строке.
mbuild addmatrix_sample.cpp libmatrix.lib
От системной командной строки, запущенной приложение. Если бы вы использовали демонстрационный код MATLAB на упаковочных шагах, это приложение должно возвратить тот же выходной параметр как код MATLAB.
addmatrix_sample.exe
2 8 14 4 10 16 6 12 18
deploytool
| libraryCompiler
| mcc