В этом примере показано, как создать MATLAB C++® API данных совместно использовал заголовок библиотеки от функции MATLAB со строгим контролем типов, и интегрируйте его с демонстрационным кодом приложения C++. Целевая система не требует, чтобы лицензированная копия MATLAB запустила приложение.
Запустите этот пример путем создания новой папки работы, которая отображается к пути поиска файлов MATLAB.
Проверьте, что вам установили компилятор C++ путем ввода mbuild -setup
в командной строке MATLAB.
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Создайте файл MATLAB под названием stronglyTypedFactorial.m
со следующим кодом:
function fact = stronglyTypedFactorial(n) arguments n (1,1) uint64 {mustBeReal, mustBeLessThan(n,22)} end fact = 1; for i = 1:n fact = fact*i; end end
Протестируйте функцию в командной строке MATLAB.
stronglyTypedFactorial(5)
ans = uint64 120
mcc
КомандаСгенерируйте совместно использованный заголовок библиотеки C++ с помощью mcc
команда. В командной строке введите:
if ~exist('output/cpp','dir') mkdir output/cpp end mcc -W 'cpplib:stronglyTypedFactorial,generic' stronglyTypedFactorial.m -d output/cpp
v2
> generic_interface
папка:
readme.txt
stronglyTypedFactorial.ctf
stronglyTypedFactorialv2.hpp
stronglyTypedFactorialv2.hpp
заголовочный файл содержит массив данных C++, который принимает аргумент типа uint64_t
.
matlab::data::Array stronglyTypedFactorial(std::shared_ptr<MATLABControllerType> _matlabPtr, uint64_t n)
Этот uint64_t
отображение совпадает с uint64
со строгим контролем типов тип данных аргумента MATLAB.
n (1,1) uint64 {mustBeReal, mustBeLessThan(n,22)}
Для получения дополнительной информации смотрите Отображения Типа данных Между C++ и кодом MATLAB Со строгим контролем типов.
Создайте файл кода приложения C++ под названием factApp.cpp
со следующим кодом.
Примечание
При записи кода приложения C++ необходимо включать заголовочный файл (.hpp
файл) сгенерированный mcc
команда или приложение Library Compiler и MatlabCppSharedLib.hpp
заголовочный файл с помощью #include
директивы.
Скомпилируйте и соедините приложение C++ в командной строке MATLAB.
mbuild factApp.cpp -outdir output/cpp
Запустите приложение от системной командной строки путем передачи развертываемого архива (.ctf
файл) как вход. Для тестирования можно запустить приложение из командной строки MATLAB.
!output\cpp\factApp.exe output\cpp\v2\generic_interface\stronglyTypedFactorial.ctf
Factorial of 5 is 120