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