Создайте C++ MATLAB Data API разделяемый заголовок библиотеки от классов MATLAB со строгим контролем типов, содержавшихся в пакете

То В этом примере показано, как создать C++, совместно использовало заголовок библиотеки из MATLAB со строгим контролем типов® классы, содержавшие в пакете и, интегрируют его с демонстрационным кодом приложения C++.

Необходимые условия

  • Запустите этот пример путем создания новой папки работы, которая отображается к пути поиска файлов MATLAB.

  • Проверьте, что вам установили компилятор C++ путем ввода mbuild -setup в командной строке MATLAB.

  • У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.

    Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.

Файлы

Местоположение файлов в качестве примера

Файлы в качестве примера

matlabroot\extern\examples\compilersdk\c_cpp\strongly_typed

Цель каждого файла в качестве примера

ФайлыЦель
+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)

Создайте классы и функции в MATLAB

  1. Исследуйте код на MyPosition.m, MyRectangle.m, и calculatearea.m.

    • +shapes пакет содержит два класса MATLAB: MyPosition.m и MyRectangle.m.

    • calculatearea.m Функция MATLAB расположена за пределами +shapes пакет принимает MyRectangle возразите, как введено, и вычисляет область прямоугольника.

  2. Создайте скрипт MATLAB по имени runshapes.m со следующим кодом и выполняют его в командной строке MATLAB. Этот скрипт иллюстрирует, как классы и функция взаимодействуют, чтобы сгенерировать выход.

     runshapes.m

    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

Сгенерируйте C++ разделяемый заголовок библиотеки Используя 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 Со строгим контролем типов.

 libshapesv2.hpp

Интегрируйте C++ MATLAB Data API разделяемый заголовок библиотеки с приложением C++

  1. Исследуйте код приложения C++, содержавшийся в shapes_mda.cpp файл.

    Примечание

    При записи кода приложения C++ необходимо включать заголовочный файл (.hpp файл) сгенерированный mcc команда или приложение Library Compiler и MatlabCppSharedLib.hpp заголовочный файл с помощью #include директивы.

  2. Скомпилируйте и соедините приложение C++ в командной строке MATLAB.

    mbuild shapes_mda.cpp -outdir output/cpp

  3. Запустите приложение от системной командной строки путем передачи развертываемого архива (.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 

Смотрите также

|

Похожие темы