То В этом примере показано, как создать C++, совместно использовало заголовок библиотеки из MATLAB со строгим контролем типов® классы, содержавшие в пакете и, интегрируют его с демонстрационным кодом приложения C++.
Запустите этот пример путем создания новой папки работы, которая отображается к пути поиска файлов MATLAB.
Проверьте, что вам установили компилятор C++ путем ввода mbuild -setup
в командной строке MATLAB.
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Местоположение файлов в качестве примера
Файлы в качестве примера |
|
Цель каждого файла в качестве примера
Файлы | Цель |
---|---|
+shapes | Пакет, содержащий два класса: MyPosition.m и MyRectangle.m |
MyPosition.m | Класс в +shapes пакет, который принимает координаты X и Y точки и создает MyPosition объект |
MyRectangle.m | Класс в +shapes пакет, который принимает две точки, заданные как MyPosition объекты и создают MyRectangle объект |
calculatearea.m | Функция, которая принимает MyRectangle возразите, как введено, и вычисляет область прямоугольника |
shapes_mda.cpp | Код приложения C++, который интегрирует заголовочный файл, сгенерированный путем компиляции кода MATLAB |
Скопируйте файлы в качестве примера в текущую папку работы.
appDir = fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','strongly_typed'); copyfile(appDir)
Исследуйте код на MyPosition.m
, MyRectangle.m
, и calculatearea.m
.
+shapes
пакет содержит два класса MATLAB: MyPosition.m
и MyRectangle.m
.
calculatearea.m
Функция MATLAB расположена за пределами +shapes
пакет принимает MyRectangle
возразите, как введено, и вычисляет область прямоугольника.
Создайте скрипт MATLAB по имени runshapes.m
со следующим кодом и выполняют его в командной строке MATLAB. Этот скрипт иллюстрирует, как классы и функция взаимодействуют, чтобы сгенерировать выход.
runshapes
Rectangle 1 Point 1 = (10.000000,5.000000) Point 2 = (50.000000,20.000000) Rectangle (10.000000,5.000000) -> (50.000000,20.000000) Rectangle 2 Point 1 = (0.000000,-5.000000) Point 2 = (60.000000,30.000000) Rectangle (0.000000,-5.000000) -> (60.000000,30.000000) Area of rectangle r1 = 600 Area of rectangle r2 = 2100
mcc
Командаif ~exist('output/cpp','dir') mkdir output/cpp end mcc -W 'cpplib:libshapes,generic' +shapes/MyPosition.m +shapes/MyRectangle.m calculatearea.m -d output/cpp
Следующие файлы создаются в output
> cpp
> v2
> generic_interface
папка:
readme.txt
libshapes.ctf
libshapesv2.hpp
Для получения дополнительной информации смотрите Отображения Типа данных Между C++ и кодом MATLAB Со строгим контролем типов.
Исследуйте код приложения C++, содержавшийся в shapes_mda.cpp
файл.
Примечание
При записи кода приложения C++ необходимо включать заголовочный файл (.hpp
файл) сгенерированный mcc
команда или приложение Library Compiler и MatlabCppSharedLib.hpp
заголовочный файл с помощью #include
директивы.
Скомпилируйте и соедините приложение C++ в командной строке MATLAB.
mbuild shapes_mda.cpp -outdir output/cpp
Запустите приложение от системной командной строки путем передачи развертываемого архива (.ctf
файл) как вход. Прежде, чем запустить приложение в системной командной строке, проверьте, что вам установили MATLAB Runtime на вашей машине до запуска приложения в системной командной строке. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.
Для тестирования можно запустить приложение из командной строки MATLAB.
!output\cpp\shapes_mda.exe output\cpp\v2\generic_interface\libshapes.ctf
Rectangle 1 Point (10.000000, 5.000000) Point (50.000000, 20.000000) Rectangle (10.000000, 5.000000) -> (50.000000, 20.000000) Rectangle 2 Point (0.000000, -5.000000) Point (60.000000, 30.000000) Rectangle (0.000000, -5.000000) -> (60.000000, 30.000000) Area of rectangle r1 = 600 Area of rectangle r2 = 2100