Вызывать функциональность на C++ совместно использовало библиотеку от MATLAB®, сначала создайте MATLAB C++ interface к библиотеке. Кто-то, кто создает этот интерфейс, называется publisher. Публикация требует знаний проблемной области о библиотеке, навыках языка C++ и документации библиотеки. Когда вы готовы опубликовать интерфейс, вам нужен доступ к:
Совместно использованный файл библиотеки времени выполнения — .dll
на Windows®, .so
на Linux® или .dylib
на macOS
Заголовочные файлы библиотеки
(Дополнительный) файл библиотеки .lib
импорта
Компилятор раньше создавал библиотеку
Интерфейс MATLAB автоматически преобразовывает подписи функции C++ в подписи функции MATLAB. Однако некоторые построения языка C++ не имеют уникальных соответствий на языке MATLAB. Чтобы устранить этот разрыв, MATLAB использует definition file (с расширением .mlx
), который издатель создает и изменяет, чтобы предоставить недостающую информацию. У издателя должно быть достаточно навыков языка C++, чтобы интерпретировать функциональную подпись и предоставить недостающую информацию.
Пример информации, которую должен задать издатель, относится к использованию pointers, чтобы передать данные функциям. Указатель является местоположением в памяти, которая указывает на запуск блока данных. Чтобы передать эти данные MATLAB безопасно, издатель должен задать размер данных. Обычно поиск по функциям указывает на размер данных, возможно, как дополнительный входной параметр. Используя файл определения MATLAB, издатель задает значение, и затем MATLAB создает эквивалентную подпись функции MATLAB.
Чтобы создать определение библиотеки, вызовите функцию clibgen.generateLibraryDefinition
. Эта функция создает файл с расширением .mlx
. На основе функциональности вы хотите от библиотеки, вы можете должны быть предоставить информацию так, чтобы MATLAB мог обеспечить синтаксис вызова для некоторой функциональности. Для получения дополнительной информации смотрите Шаги, чтобы Опубликовать Интерфейс Библиотеки C++ MATLAB.
Если вы решаете обеспечить дополнительную функциональность, то запустите путем открытия файла определения с Live Editor MATLAB. Для получения дополнительной информации смотрите, Задают Интерфейс MATLAB к Библиотеке C++.
После определения интерфейса вызовите функцию build
, чтобы создать файл интерфейса MATLAB packagename
. Функция сборки использует поддерживаемый MATLAB компилятор C++. С этим файлом и совместно использованным файлом библиотеки, любой end user MATLAB может вызвать библиотечные функции C++ в MATLAB.
Чтобы сделать этот интерфейс доступным для других пользователей MATLAB, предоставьте им файл интерфейса MATLAB packagename
. Конечный пользователь помещает совместно использованный файл библиотеки на системный путь или rpath и интерфейсный файл на пути MATLAB. Чтобы отобразить функциональные подписи, смотрите Справку Отображения для MATLABInterface к Библиотеке C++. Чтобы выполнить команду, вызовите
.clib.packagename.command
build
| clibgen.generateLibraryDefinition