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

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

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

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

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

  • Кроме того, файл библиотеки импорта на Windows — .lib

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

Интерфейс MATLAB автоматически преобразует подписи функции C++ в подписи функции MATLAB. Однако некоторые построения языка C++ не имеют уникальных соответствий на языке MATLAB. Чтобы устранить этот разрыв, MATLAB использует 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++, заданной в заголовочном файле school.hpp.

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

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

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

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

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

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

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

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

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

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

Пример кода, чтобы работать вокруг ограничений библиотеки C++.

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

Информация для того, чтобы решить C++ соединяет интерфейсом с вопросами.

Ошибки, Анализирующие Заголовочные файлы на macOS

Работа вокруг для ошибок, анализирующих заголовочный файл на macOS.

Создайте ошибку из-за проверок времени компиляции

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