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++ по Windows
Этот пример создает версию Windows интерфейса MATLAB к библиотеке matrixOperations
C++.
Опубликуйте интерфейс к разделяемой библиотеке C++ по Linux
Этот пример создает версию Linux интерфейса MATLAB к библиотеке matrixOperations
C++.
Функции библиотеки C/C++, не поддерживавшие в MATLAB.
Примеры обходного решения ограничения C++
Пример кода, чтобы работать вокруг ограничений библиотеки C++.
Поиск и устранение проблем проблемы интерфейса C++
Информация для того, чтобы решить C++ соединяет интерфейсом с вопросами.
Ошибки, Анализирующие Заголовочные файлы на macOS
Работа вокруг для ошибок, анализирующих заголовочный файл на macOS.
Создайте ошибку из-за проверок времени компиляции
Как удалить члены C++, содержащие утверждения времени компиляции.