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

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

Можно сконфигурировать сборку в командной строке, внутри функции или путем установки свойств объекта строения генерации кода. Укажите файлы в командной строке для быстрого и простого способа генерации кода. Когда необходимо предварительно сконфигурировать функцию для других проектов и развертываний кода, сконфигурируйте сборку в функции. Объект строения предоставляет стандартизированный набор свойств сборки. Можно также задать внешние файлы с помощью MATLAB Coder™ App или с помощью класса, производного от 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 + +, вне функции. Не задайте определение статической функции на С.

Например, объявите автономный объект строения кода и задайте следующие свойства:

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 App и перейдите к Generate Code шагу.

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

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

  4. На вкладке Custom Code выберите настройки строения сборки. Щелкните Help для отображения информации о полях ввода.

См. также

| | | | | |

Похожие темы