exponenta event banner

Создание интерфейса MATLAB к библиотеке C++

Для создания интерфейса MATLAB ® с библиотекой C++ используйте clibgen пакет

Для создания (публикации) интерфейса MATLAB в библиотеке C++ необходимо:

  • Один или несколько заголовочных или исходных файлов, содержащих объявления всех функций, экспортированных библиотекой. Эти файлы можно компилировать в среде разработки C++ и использовать функциональные возможности приложений C++.

  • Файл общей библиотеки - .dll в ОС Windows ® ,.so в ОС Linux ®, или.dylib на macOS. Если библиотека полностью определена в заголовках или исходных файлах, файл библиотеки является необязательным.

    MATLAB не поддерживает 32-разрядные библиотеки.

  • В Windows - библиотека импорта .lib файл. Если библиотека соответствует поддерживаемому компилятору Microsoft ® Visual Studio ®, то требуется только общая библиотека.dll файл.

  • Поддерживаемый MATLAB компилятор C++.

Интерфейс MATLAB автоматически преобразует сигнатуры функций C++ в сигнатуры функций MATLAB. Однако некоторые конструкции языка C++ не имеют уникальных совпадений в языке MATLAB. Чтобы устранить этот разрыв, MATLAB использует файл определения библиотеки.mlx расширение файла), создаваемое и изменяемое издателем для предоставления отсутствующей информации. Издатель должен иметь достаточно навыков языка C++, чтобы интерпретировать подпись функции и предоставить недостающую информацию.

Пример информации, которую необходимо определить издателю, относится к использованию указателей для передачи данных функциям. Указатель - это местоположение в памяти, указывающее начало блока данных. Для безопасной передачи этих данных в MATLAB издатель должен указать размер данных. Как правило, документация по функции указывает размер данных, возможно, в качестве дополнительного входного аргумента. Используя файл определения MATLAB, издатель указывает значение, а затем MATLAB создает эквивалентную сигнатуру функции MATLAB. Для просмотра сигнатур функций см. раздел Просмотр справки по интерфейсу MATLAB с библиотекой C++.

Чтобы сделать этот интерфейс доступным для других пользователей MATLAB, предоставьте им файл интерфейса MATLAB. Конечный пользователь помещает файл общей библиотеки в системный путь или путь времени выполнения, а файл интерфейса - в путь MATLAB.

Примеры:

Сведения о вызове функций в библиотеке см. в разделе Использование предварительно созданного интерфейса MATLAB к библиотеке C++.

Функции

clibgen.generateLibraryDefinitionСоздание файла определения для библиотеки C++
clibgen.buildInterfaceСоздание интерфейса с библиотекой C++ без файла определения

Пакеты

clibgen PackageСводка пакетов и классов для поддержки вызова функциональных возможностей библиотеки C++ из MATLAB

Темы

Требования к интерфейсу здания с библиотеками C++

Требования к вызову функций во внешних, совместно используемых библиотеках C++ из MATLAB.

Шаги по публикации интерфейса MATLAB в библиотеке C++

Структура для публикации интерфейса в библиотеке C++.

Определение интерфейса MATLAB для библиотеки C++

Создание и редактирование MATLAB .mlx файл определения библиотеки для настройки и определения интерфейса.

Публикация текста справки для интерфейса MATLAB в библиотеке C++

Предоставление документации для конечных пользователей интерфейса MATLAB с библиотекой C++.

Сборка интерфейса библиотеки C++ и просмотр содержимого

Если функциональность библиотеки отсутствует, библиотека может содержать неподдерживаемые языковые функции или типы данных.

Опубликовать интерфейс в библиотеке C++ с использованием исходных файлов

В этом примере создается интерфейс MATLAB с библиотекой C++, определенной в исходных файлах. matrixOperations.cpp.

Опубликовать интерфейс в общей библиотеке C++ в Windows

В этом примере создается версия интерфейса MATLAB для Windows с библиотекой C++ matrixOperations.

Опубликовать интерфейс в общей библиотеке C++ в Linux

В этом примере создается версия интерфейса MATLAB для Linux с библиотекой C++ matrixOperations.

Опубликовать интерфейс в библиотеке C++ только для заголовка

В этом примере создается интерфейс MATLAB с библиотекой C++, определенной в файле заголовка. school.hpp.

Поиск неисправностей

Ограничения поддержки C/C + +

Функции библиотеки C/C + + не поддерживаются в MATLAB.

Примеры обхода ограничений C++

Пример кода для работы с ограничениями библиотеки C++.

Устранение неполадок интерфейса C++

Информация для решения проблем интерфейса C++.

Ошибки при анализе заголовочных файлов в macOS

Поиск ошибок при анализе файла заголовка в macOS.

Ошибка построения из-за проверок времени компиляции

Удаление элементов C++, содержащих утверждения времени компиляции.