clibgen.buildInterface

Создайте интерфейс к библиотеке C++ без файла определения

Синтаксис

clibgen.buildInterface(HeaderFiles)
clibgen.buildInterface(HeaderFiles,Name,Value)

Описание

пример

clibgen.buildInterface(HeaderFiles) генерирует интерфейс MATLAB® к библиотеке C++, заданной HeaderFiles. Конструкторы класса, методы и функции, которые не может автоматически задать MATLAB, не включены в интерфейс. Чтобы включать недостающую функциональность, используйте функцию clibgen.generateLibraryDefinition.

clibgen.buildInterface(HeaderFiles,Name,Value) генерирует интерфейс с помощью одного или нескольких аргументов пары "имя-значение".

Примеры

свернуть все

Скопируйте заголовочный файл school.hpp в перезаписываемую папку H:\Documents\MATLAB\publisher.

copyfile(fullfile(matlabroot,'extern','examples','cpp_interface','school.hpp'),'.','f')

Создайте интерфейс.

clibgen.buildInterface('school.hpp')
Warning: Only header files specified; assuming this is a header-only library. If library 
files also need to be specified, use the 'Libraries' option.

Building interface file 'schoolInterface.dll'.
Interface file 'schoolInterface.dll' built in folder 'H:\Documents\MATLAB\publisher\school'.
To use the library, add the interface file folder to the MATLAB path.
1 constructs need further definition to be included in the interface. 
Use clibgen.generateLibraryDefinition to provide definitions.

Щелкните по ссылке interface file folder, чтобы добавить интерфейс в путь.

Отобразите классы в библиотеке.

clib.school.Tab

Отобразите справку для библиотеки.

help clib.school
Classes contained in clib.school:
Person                         - clib.school.Person    Representation of C++ class Person
Teacher                        - clib.school.Teacher    Representation of C++ class Teacher
Student                        - clib.school.Student    Representation of C++ class Student

Сравните эта функциональность с выводом команды summary(defineschool) в Задают и Публикуют Интерфейс к Библиотеке C++ Только для заголовка. Этот интерфейс не включает:

Functions
  string clib.school.getName(clib.school.Person)

Входные параметры

свернуть все

Один или несколько заголовочных файлов, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. Поддерживаемыми расширениями файла является .h, .hpp и .hxx. Заголовочный файл без расширения также поддержан.

MATLAB записывает интерфейсные файлы в подпапке в текущей папке, если OutputFolder не задан. Имя подпапки является именем первого заголовочного файла без расширения файла. Например, следующий оператор создает интерфейсный файл библиотеки в подпапке myHeader в текущей рабочей папке.

clibgen.buildInterface('myHeader.hpp')

Типы данных: char | string | cell

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: clibgen.buildInterface('myHeader.hpp','Libraries','myHeader.lib','OutputFolder','C:\work');

Один или несколько путей к библиотеке, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. Каждое значение Libraries является именем полного пути к библиотеке. Например, выполнение этого оператора на Windows® создает sampleInterface.dll с помощью myLib.lib в C:\myLib\ и пишет его в подпапку sample в текущей рабочей папке.

clibgen.buildInterface('sample.hpp','Libraries','C:\myLib\myLib.lib')

Типы данных: char | string | cell

Путь к заголовочному файлу, заданный как массив строк, вектор символов или массив ячеек из символьных векторов. IncludePath является именем полного пути к папкам, чтобы включать во время компиляции заголовочных файлов.

Типы данных: char | string | cell

Имя папки раньше генерировало интерфейсную библиотеку, заданную как скаляр строки или вектор символов. Например, этот оператор создает myHeaderInterface.dll в C:\work\myHeader на Windows.

clibgen.buildInterface('myHeader.hpp','OutputFolder','C:\work')

Типы данных: char | string | cell

Интерфейсное имя пакета, заданное как скаляр строки или вектор символов. Для интерфейсов, созданных из одного заголовочного файла, значение по умолчанию является именем заголовка. Для нескольких заголовочных файлов задайте имя пакета как допустимое имя MATLAB. Например, этот оператор создает файл библиотеки myPackageInterface в подпапке myPackage в текущей рабочей папке.

clibgen.buildInterface({'h1.hpp','h2.hpp'},'PackageName','myPackage')

Типы данных: char | string | cell

Опция, чтобы отобразить сообщения генерации, заданные как true или false. Когда true, clibgen.buildInterface отображает сообщения генерации к командному окну при создании интерфейса. Например, этот оператор создает файл библиотеки h1Interface в подпапке h1 и отображает сообщения в командном окне.

clibgen.buildInterface('h1.hpp','Verbose',true)

Для получения дополнительной информации см. сообщения Поиска и устранения проблем.

Типы данных: логический

Смотрите также

Введенный в R2019a