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