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++.
Ошибки при анализе файлов заголовков на macOS
Работайте над ошибками при анализе заголовочного файла на macOS.
Ошибка сборки из-за проверок во время компиляции
Как удалить представители C++, содержащие утверждения во время компиляции.