exponenta event banner

Настройка процесса построения

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

  • Использование функции coder.updateBuildInfo.

  • Использование методов RTW.BuildInfo объект.

  • Изменение информации о построении с помощью coder.ExternalDependency класс.

  • Изменение информации построения с помощью сценария или функции, выполняемой PostCodeGenCommand свойство конфигурации. Этот сценарий или функция называется командой посткодового поколения.

Все эти подходы работают путем изменения make-файла, который создается и используется для создания кода. В качестве наилучшей практики рекомендуется использовать первые три подхода: coder.updateBuildInfo, RTW.BuildInfo, и coder.ExternalDependency. Эти подходы позволяют предварительно настроить код MATLAB ® с требуемой информацией о сборке. Альтернативно, команда посткодового генерирования может обеспечить дополнительный, в высокой степени настраиваемый подход, основанный на независимой функции или сценарии.

coder.ExternalDependency класс и команда посткодовой генерации обеспечивают доступ к информационному объекту построения, buildInfo. Вы можете использовать методы построения информации на buildInfo для настройки информации о проектах, построениях и зависимостях. MATLAB Coder™ создает buildInfo из класса RTW.BuildInfo в начале построения. Этот объект хранится в MAT-файле buildInfo.mat и сохранен в папке построения.

После создания кода можно получить доступ к объекту информации построения, загрузив его из buildInfo.mat. Не путайте объект информации построения с объектом конфигурации построения, coder.BuildConfig, которая предоставляет специальные функциональные возможности для настройки сборки в coder.ExternalDependency класс.

RTW.BuildInfo Методы

Для доступа или записи данных в информационный объект построения используйте RTW.BuildInfo методы. С помощью этих методов можно изменять:

  • Параметры компилятора

  • Варианты компоновщика

  • Определения идентификаторов препроцессора

  • Исходные файлы и пути

  • Включить файлы и пути

  • Предварительно скомпилированные внешние библиотеки

  • Варианты упаковки.

    См. Код пакета для других сред разработки.

Для вызова методов используйте синтаксис:

method_name(buildInfo,input_arg1,...,input_argN)

Кроме того, можно ввести:

buildInfo.method_name(input_arg1,...,input_argN)

Чтобы использовать информационный объект построения после завершения создания кода, загрузите buildInfo.mat файл из созданного кода. Например:

load(fullfile('.','raspberrypi_generated_code','buildInfo.mat'));
packNGo(buildInfo, 'fileName','copy_to_raspberrypi');

coder.updateBuildInfo Функция

coder.updateBuildInfo функция предоставляет удобный способ настройки процесса сборки из кода MATLAB. Дополнительные сведения и примеры см. в разделе coder.updateBuildInfo и RTW.BuildInfo справочные страницы.

coder.ExternalDependency Класс

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

Команда посткодового формирования

Рекомендуется настроить процесс сборки с использованием первых двух подходов. coder.updateBuildInfo и coder.ExternalDependency. Третий подход, обеспечивающий дополнительную гибкость, - это команда посткодового поколения. Команда после генерации кода - это функция или скрипт, выполняемый PostCodeGenCommand свойство объекта конфигурации. Задайте команду с помощью объекта конфигурации создания кода (coder.MexCodeConfig, coder.CodeConfig или coder.EmbeddedCodeConfig).

Формат командыРезультат
СценарийСкрипт может получить доступ непосредственно к имени проекта (функции верхнего уровня) и информации о построении.
ФункцияФункция может получать имя проекта и сведения о построении в качестве аргументов.

Чтобы написать команду пост-кодообразования в виде сценария, установите PostCodeGenCommand в имя сценария. Можно получить доступ к имени проекта в переменной projectName и RTW.BuildInfo объект в переменной buildInfo. В командной строке введите:

cfg = coder.config('lib');
cfg.PostCodeGenCommand = 'ScriptName';

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

cfg = coder.config('lib');
cfg.PostCodeGenCommand = 'FunctionName(projectName, buildInfo)';

Например, рассмотрим функцию setbuildargs который принимает информационный объект построения в качестве параметра и добавляет параметры компоновщика с помощью addLinkFlags способ.

function setbuildargs(buildInfo)
% The example being compiled requires pthread support.
% The -lpthread flag requests that the pthread library be included 
% in the build   
linkFlags = {'-lpthread'};
buildInfo.addLinkFlags(linkFlags);

Чтобы использовать эту функцию в качестве команды посткодовой генерации, создайте объект конфигурации. Этот объект конфигурации используется при создании кода. Например:

cfg = coder.config('dll');
cfg.PostCodeGenCommand = 'setbuildargs(buildInfo)';
codegen -config cfg foo

Чтобы задать команду посткодовой генерации из приложения MATLAB Coder, выполните следующие действия.

  1. Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».

  2. Щелкните Дополнительные параметры.

  3. На вкладке Пользовательский код (Custom Code) задайте параметр команды Пост-код (Post-code-generation).

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

См. также

| | | |

Связанные темы