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