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

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

Чтобы создать (publish) интерфейс MATLAB к библиотеке C++, вам нужно:

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

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

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

  • В Windows - библиотека импорта .lib файл. Если библиотека соответствует поддерживаемой корпорации Майкрософт® Визуальная студия® компилятор, тогда вам нужна только общая библиотека .dll файл.

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

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

Пример информации, которую нужно задать издателю, относится к использованию pointers для передачи данных функциям. Указатель - это расположение в памяти, которое указывает на начало блока данных. Чтобы безопасно передать эти данные в 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++

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

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

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

Построение библиотечного интерфейса C++ и обзор содержимого

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

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

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

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

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

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

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

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

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

Поиск и устранение проблем

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

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

Примеры шагов ограничения C++

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

Поиск и устранение проблем с интерфейсами C++

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

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

Работайте над ошибками при анализе заголовочного файла на macOS.

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

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