Сконфигурируйте сборку для внешнего кода C/C++

Чтобы интегрировать ваш внешний код C/C++ с MATLAB®, необходимо предоставить внешние файлы генератору кода. Эти файлы состоят из исходных файлов, заголовочных файлов, объектных файлов и файлов библиотеки, которые используются, чтобы создать сгенерированный код.

Можно сконфигурировать сборку в командной строке в функции, или путем установки свойств объектов настройки генерации кода. Задайте файлы в командной строке для быстрого и простого способа сгенерировать код. Когда это необходимо, чтобы предварительно сконфигурировать функцию для других проектов и развертывания кода, сконфигурируйте сборку в функции. Объект настройки обеспечивает стандартизированный набор свойств сборки. Можно также задать внешние файлы при помощи Приложения MATLAB Coder™, или при помощи класса, выведенного из coder.ExternalDependency. Для получения дополнительной информации смотрите, Разрабатывают Интерфейс для Внешнего Кода C/C++.

Предоставьте внешние файлы генерации кода

Предположим, что вы хотите сгенерировать код для функции, которая использует coder.ceval чтобы вызвать C функционируют myCFn. Внешний источник и заголовочные файлы для myCFn находитесь в папке C:\custom. Используйте эту команду:

codegen myMatlabFn C:\custom\myCFn.c C:\custom\myCFn.h

Сконфигурируйте сборку из функции

В этом примере показано, как сконфигурировать сборку для внешнего кода C/C++ из функции MATLAB®. Сконфигурируйте сборку в функции так, чтобы можно было более легко интегрировать ее с другими проектами.

Предположим, что у вас есть функция MATLAB верхнего уровня, myFn:

function [out] = myFn(in)
%#codegen
y = mySubFn(in);
out = y + 10;
end


Это вызовы функции другая функция, mySubFn, это использует внешний код С foo.c. При помощи coder.updateBuildInfo и coder.cinclude, вы устанавливаете все необходимые внешние зависимости кода из mySubFn.

function [y] = mySubFn(x)
%#codegen
coder.cinclude('foo.h');
coder.updateBuildInfo('addSourceFiles', 'foo.c');
% Pre-initialize y to double type.
y = 0;
y = coder.ceval('foo',x);
end


Можно сгенерировать код, содержащий mySubFn не будучи должен сконфигурировать дополнительные настройки сборки или задать внешний файл вводит в командной строке. Сгенерировать код для функционального myFn верхнего уровня, Введите:

codegen myFn -args {5} -report
Code generation successful: To view the report, open('codegen/mex/myFn/html/report.mldatx').

Сконфигурируйте сборку при помощи объекта настройки

Настройте сборку путем установки свойств объекта настройки генерации кода. С этими свойствами можно задать внешнее расположение файлов, пользовательский исходный код и другие параметры сборки.

Свойство пользовательского кодаОписание

CustomHeaderCode

Задайте код, чтобы появиться около верхней части каждого заголовочного файла C/C++, сгенерированного из вашего кода MATLAB.

CustomInclude

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

cfg.CustomInclude = '"C:\Program Files\MATLAB\work"'

CustomLibrary

Задайте список статической библиотеки или объектных файлов, чтобы соединиться со сгенерированным кодом.

CustomSource

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

CustomSourceCode

Задайте код, чтобы появиться около верхней части сгенерированного исходного файла C/C++, за пределами функции. Не задавайте статическое функциональное определение C.

Например, объявите, что автономная настройка кода возражает и задает эти свойства:

cfg = coder.config('lib');
cfg.CustomInclude = 'C:\custom\src C:\custom\lib';
cfg.CustomSource = 'cfunction.c';
cfg.CustomLibrary = 'chelper.obj clibrary.lib';
cfg.CustomSourceCode = '#include "cgfunction.h"';

Примените свойства в командной строке при помощи codegen команда с -config аргумент:

codegen -config cfg myMatlabFn

Сконфигурируйте сборку при помощи приложения MATLAB Coder

  1. Откройте Приложение MATLAB Coder и перейдите к шагу Generate Code.

  2. На странице Generate Code, чтобы открыть диалоговое окно Generate, кликают по стреле Generate.

  3. Нажмите More Settings.

  4. На вкладке Custom Code выберите свои настройки конфигурации сборки. Нажмите Help, чтобы отобразить информацию о полях записи.

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

| | | | | |

Похожие темы