clibgen.buildInterface

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

Описание

clibgen.buildInterface(InterfaceGenerationFiles,'Libraries',LibraryFiles) создает интерфейс MATLAB® к библиотеке C++, заданной InterfaceGenerationFiles и LibraryFiles.

Примечание

Пропущены любые конструкторы класса, методы, элементы данных и функции в библиотеке, которую не может автоматически задать MATLAB. Чтобы включать недостающую функциональность, используйте двухступенчатый рабочий процесс сборки, clibgen.generateLibraryDefinition и build функции.

Именем интерфейсного файла является libNameИнтерфейс, со специфичным для платформы расширением файла. По умолчанию, libName имя файла, заданного в InterfaceGenerationFiles.

Вам нужен поддерживаемый MATLAB компилятор C++. Необходимо создать интерфейс с помощью того же компилятора, который использовался, чтобы создать библиотеку C++.

clibgen.buildInterface(InterfaceGenerationFiles,'Libraries',LibraryFiles,'SupportingSourceFiles',SourceFiles) создает интерфейс к библиотеке, заданной несколькими заголовочными файлами, исходными файлами, и при необходимости совместно использовал файлы библиотеки.

пример

clibgen.buildInterface(InterfaceGenerationFiles) создает интерфейс к библиотеке, которая полностью задана InterfaceGenerationFiles. Можно использовать любой поддерживаемый MATLAB компилятор C++, чтобы создать интерфейс.

Если ваша библиотека включает совместно использованный файл библиотеки, то необходимо задать 'Libraries' аргумент.

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

Примеры

свернуть все

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

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

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

clibgen.buildInterface("school.hpp")
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)

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

свернуть все

Один или несколько файлов C++ для генерации интерфейса в виде массива строк, вектора символов или массива ячеек из символьных векторов. Если не в текущей папке или на вашем пути MATLAB, то имя включает полный или относительный путь в файл.

Для получения дополнительной информации смотрите аргумент InterfaceGenerationFiles в clibgen.generateLibraryDefinition функция.

Пример: "sample.hpp"

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

Одни или несколько разделяемых имен файлов библиотеки в виде массива строк, вектора символов или массива ячеек из символьных векторов. Используйте с 'Libraries' аргумент. Это значение требуется кроме того, если библиотека полностью задана файлами, заданными 'InterfaceGenerationFiles' и 'SupportingSourceFiles' аргументы.

Для получения дополнительной информации смотрите аргумент LibraryFiles в clibgen.generateLibraryDefinition функция.

Например, выполнение этого оператора на Windows® создает sampleInterface.dll использование myLib.lib в C:\myLib\ и записи это к подпапке sample в текущей папке.

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

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

Один или несколько исходных файлов C++ в виде массива строк, вектора символов или массива ячеек из символьных векторов. Используйте с 'SupportingSourceFiles' аргумент пары "имя-значение". Поддерживаемыми расширениями файла является .cpp и .cxx. Если не в текущей папке или на вашем пути MATLAB, то имя включает полный или относительный путь в файл. Исходный файл поддержки должен содержать Код С++.

Для получения дополнительной информации см., "Какие файлы вы имеете в своей библиотеке?" в Советах.

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

Пример: "sample.cpp"

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

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

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

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

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

Если основной заголовочный файл содержит #include операторы для заголовочных файлов в различных папках, затем используйте IncludePath аргумент, чтобы задать эти пути.

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

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

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

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

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

clibgen.buildInterface(["h1.hpp","h2.hpp"],"PackageName","mylib")

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

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

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

Для получения дополнительной информации см. сообщения О Неподдерживаемых Типах.

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

Сформируйте спецификатор для объектных указателей в виде true или false. Если TreatObjectPointerAsScalar true, затем MATLAB обрабатывает все объектные указатели в библиотеке как скаляры путем определения SHAPE как 1. В противном случае форма объектного указателя неизвестна.

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

Форма и MATLAB вводят спецификатор для const символьные указатели в виде true или false. Если TreatConstCharPointerAsCString true, затем MATLAB обрабатывает весь const символьные указатели в библиотеке как отключенные пустым указателем струны до путем определения MLTYPE как string и SHAPE как nullTerminated. В противном случае, тип MATLAB и форма const символьные указатели неизвестны. Поддерживаемые типы указателей:

  • const char *

  • const wchar_t *

  • const char16_t *

  • const char32_t *

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

Список макроопределений, чтобы использовать при парсинге заголовочных файлов в виде пустого, скалярной строки или вектора-строки из скалярных строк. Макро-имя содержит символы 1–9, a–z, A–Z и '_' и не может начаться с цифры.

Типы данных: string

Список макро-отмен, чтобы использовать при парсинге заголовочных файлов в виде пустого, скалярной строки или вектора-строки из скалярных строк. Макро-имя содержит символы 1–9, a–z, A–Z и '_' и не может начаться с цифры.

Типы данных: string

Возвратить ли массивы необъекта C в виде true или false. Если ReturnCArrays true, затем MATLAB возвращает массивы C (clib.array.*) для массивов необъекта C. Если false, затем MATLAB возвращает числовые массивы MATLAB для массивов необъекта C.

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

Сгенерировать ли документацию из файлов C++ в виде true или false. Если GenerateDocumentationFromHeaderFiles true, затем MATLAB генерирует документацию из комментариев в исходных файлах C++ для отображения с помощью MATLAB doc команда. Если false, затем MATLAB игнорирует комментарии C++ и только генерирует документацию отображений типа MATLAB и C++.

Для получения дополнительной информации смотрите, Публикуют текст Справки для Интерфейса MATLAB к Библиотеке C++.

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

Ограничения

Альтернативная функциональность

Двухступенчатый процесс сборки

Используйте clibgen.generateLibraryDefinition и build функции вместо clibgen.buildInterface задавать недостающую функциональность в вашем интерфейсе.

Для получения дополнительной информации смотрите Сборку Интерфейс Библиотеки C++ и Содержимое Анализа.

Введенный в R2019a