clibgen.generateLibraryDefinition

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

Описание

пример

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

Имя файла определения является definelibName.mlx. Для получения дополнительной информации об использовании этого файла смотрите, Задают Интерфейс MATLAB к Библиотеке C++.

Используйте build метод, чтобы создать интерфейс.

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

Примеры

свернуть все

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

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

Сгенерируйте файл определения библиотеки defineschool.mlx.

clibgen.generateLibraryDefinition("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. 

Using MinGW64 Compiler (C++) compiler.
Generated definition file defineschool.mlx and data file 'schoolData.xml' contain definitions for 
21 constructs supported by MATLAB.
1 constructs require additional definition. To include these constructs in the interface, 
edit the definitions in defineschool.mlx.
Build using build(defineschool).

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

свернуть все

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

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

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

clibgen.generateLibraryDefinition('myHeader.hpp')

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

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

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

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

Пример: clibgen.generateLibraryDefinition({"hfile1.hpp","hfile2.hpp"},"Libraries","mylib.lib","IncludePath","C:\mylib\include","PackageName","mypackage","OutputFolder","C:\work","DefinedMacros",["mymacro1","mymacro2=0"],"UndefinedMacros","mymacro3");

Имя полного пути к библиотеке, заданной как массив строк, вектор символов или массив ячеек из символьных векторов. Например,

clibgen.generateLibraryDefinition("sample.hpp","Libraries","C:\myLib\myLib.lib")
создает definesample.mlx использование myLib.lib в C:\myLib\ и записи это в текущей рабочей папке.

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

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

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

Имя папки раньше генерировало файл определения, заданный как скаляр строки или вектор символов. Например,

clibgen.generateLibraryDefinition("myHeader.hpp","OutputFolder","C:\work")
создает definemyHeader.mlx в C:\work.

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

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

clibgen.generateLibraryDefinition({"h1.hpp","h2.hpp"},"PackageName","myPackage")
создает definemyPackage.mlx в подпапке myPackage в текущей рабочей папке.

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

Опция, чтобы отобразить сообщения генерации, заданные как true или false. Если Verbose верно, затем сообщения генерации отображений MATLAB к командному окну при создании файла определения. Например,

clibgen.generateLibraryDefinition("h1.hpp","Verbose",true)
создает defineh1.mlx и отображения обмениваются сообщениями к командному окну.

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

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

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

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

Форма и MATLAB вводят для const char * тип указателя, заданный как true или false. Если TreatConstCharPointerAsCString верно, затем MATLAB обрабатывает весь const char * типы в библиотечных функциях как струны до путем определения Типа MATLAB как string и сформируйте как nullTerminated. В противном случае форма типа неизвестна.

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

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

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

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

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

Ограничения

  • Избегайте символов non-ASCII в папке и именах файлов, когда некоторые настройки локали не могут поддержать те символы.

Советы

  • Чтобы воссоздать файл определения библиотеки, сначала удалите definelibName.mlx файл, затем вызовите clibgen.generateLibraryDefinition.

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте