exponenta event banner

coder.updateBuildInfo

Обновить объект сведений о построении RTW.BuildInfo

Описание

пример

coder.updateBuildInfo('addCompileFlags',options) добавляет параметры компилятора в информационный объект построения.

coder.updateBuildInfo('addLinkFlags',options) добавляет параметры связи в информационный объект построения.

coder.updateBuildInfo('addDefines',options) добавляет определения макросов препроцессора в информационный объект построения.

coder.updateBuildInfo(___,group) присваивает имя группы options для более поздних ссылок.

пример

coder.updateBuildInfo('addLinkObjects',filename,path) добавляет объект ссылки из файла в информационный объект построения.

coder.updateBuildInfo('addLinkObjects',filename,path,priority,precompiled) указывает, выполняется ли предварительная компиляция объекта связи.

coder.updateBuildInfo('addLinkObjects',filename,path,priority,precompiled,linkonly) указывает, должен ли объект быть построен до того, как он будет связан или использован только для связывания. Если объект должен быть построен, он определяет, будет ли объект предварительно скомпилирован.

coder.updateBuildInfo(___,group) назначает имя группы объекту связи для последующей ссылки.

coder.updateBuildInfo('addNonBuildFiles',filename) добавляет файл, не связанный со сборкой, в информационный объект построения.

пример

coder.updateBuildInfo('addSourceFiles',filename) добавляет исходный файл в информационный объект построения.

coder.updateBuildInfo('addIncludeFiles',filename) добавляет файл включения в информационный объект построения.

coder.updateBuildInfo(___,path) добавляет файл по указанному пути.

coder.updateBuildInfo(___,path,group) назначает имя группы файлу для последующей ссылки.

coder.updateBuildInfo('addSourcePaths',path) добавляет путь к исходному файлу в информационный объект построения.

пример

coder.updateBuildInfo('addIncludePaths',path) добавляет путь к файлу включения в информационный объект построения.

coder.updateBuildInfo(___,group) назначает имя группы пути для последующей ссылки.

Примеры

свернуть все

Добавление параметров компилятора -Zi и -Wall при формировании кода для функции, func.

В любом месте кода MATLAB ® дляfunc, добавьте следующую строку:

coder.updateBuildInfo('addCompileFlags','-Zi -Wall');

Создать код для func с использованием codegen команда. Откройте отчет по созданию кода.

codegen -config:lib -launchreport func 

Дополнительные параметры компилятора можно просмотреть на вкладке «Журналы построения» в отчете о создании кода.

Добавление исходного файла в информацию о построении проекта при создании кода для функции. calc_factorial.

  1. Запись файла заголовка fact.h которая объявляет функцию C factorial.

     double factorial(double x);

    fact.h будет включен в качестве файла заголовка в сгенерированный код. Это включение обеспечивает объявление функции перед ее вызовом.

    Сохраните файл в текущей папке.

  2. Запись файла C fact.c который содержит определение factorial. factorial вычисляет факториал его ввода.

    #include "fact.h"
          
          double factorial(double x)
          {
              int i;
              double fact = 1.0;
              if (x == 0 || x == 1) {
                 return 1.0;
             } else {
                 for (i = 1; i <= x; i++) {
                     fact *= (double)i;
                 }
                 return fact;
             }
         }
         
    

    fact.c используется в качестве исходного файла при создании кода.

    Сохраните файл в текущей папке.

  3. Запись функции MATLAB calc_factorial который использует coder.ceval для вызова внешней функции C factorial.

    Использовать coder.updateBuildInfo с опцией 'addSourceFiles' для добавления исходного файла fact.c к информации о построении. Использовать coder.cinclude для включения файла заголовка fact.h в созданном коде.

    function y = calc_factorial(x) %#codegen
    
      coder.cinclude('fact.h');
      coder.updateBuildInfo('addSourceFiles', 'fact.c');
    
      y = 0;
      y = coder.ceval('factorial', x);
  4. Создать код для calc_factorial с использованием codegen команда.

     codegen -config:dll -launchreport calc_factorial -args 0

    В окне «Отчет о создании кода» на вкладке «Код C» можно просмотреть добавленный исходный файл. fact.c.

Добавление объекта ссылки LinkObj.lib к информации построения при создании кода для функции func. Для этого примера необходимо иметь объект ссылки LinkObj.lib сохранен в локальной папке, например, c:\Link_Objects.

В любом месте кода MATLAB для func, добавьте следующие строки:

libPriority = '';
libPreCompiled = true;
libLinkOnly = true;
libName = 'LinkObj.lib';
libPath = 'c:\Link_Objects';
coder.updateBuildInfo('addLinkObjects', libName, libPath, ...
     libPriority, libPreCompiled, libLinkOnly);

Создание функции MEX для func с использованием codegen команда. Откройте отчет по созданию кода.

codegen -launchreport func 

Добавленный объект ссылки можно просмотреть на вкладке Журналы построения в отчете о создании кода.

Добавьте путь включения к информации построения при создании кода для функции, adder. Включить файл заголовка, adder.h, существующий на пути.

Если файлы заголовков не находятся в текущей папке, для их включения используйте следующий метод:

  1. Запись файла заголовка mysum.h который содержит объявление для функции C mysum.

    double mysum(double, double);

    Сохраните его, например, в локальной папке c:\coder\myheaders.

  2. Запись файла C mysum.c который содержит определение функции mysum.

    #include "mysum.h"
    
    double mysum(double x, double y)
     { 
      return(x+y);
     }
     
    

    Сохраните его в текущей папке.

  3. Запись функции MATLAB adder который добавляет путь c:\coder\myheaders к информации о построении.

    Использовать coder.cinclude для включения файла заголовка mysum.h в созданном коде.

    function y = adder(x1, x2) %#codegen
       coder.updateBuildInfo('addIncludePaths','c:\coder\myheaders');
       coder.updateBuildInfo('addSourceFiles','mysum.c'); 
         %Include the source file containing C function definition
       coder.cinclude('mysum.h');
       y = 0;
       if coder.target('MATLAB')
          % This line ensures that the function works in MATLAB 
            y = x1 + x2;
       else
           y = coder.ceval('mysum', x1, x2);
        end
    end
  4. Создать код для adder с использованием codegen команда.

    codegen -config:lib -launchreport adder -args {0,0}

    Откройте отчет по созданию кода. Файл заголовка adder.h включен в созданный код.

Входные аргументы

свернуть все

Параметры построения, заданные как вектор символа или скаляр строки. Значение должно быть константой времени компиляции.

В зависимости от ведущего аргумента, options указывает соответствующие параметры построения, добавляемые к информации о построении проекта.

Ведущий аргументЗначения в options
'addCompileFlags'Параметры компилятора
'addLinkFlags'Параметры связи
'addDefines'Определения макросов препроцессора

Функция добавляет опции в конец вектора опций.

Пример: coder.updateBuildInfo('addCompileFlags','-Zi -Wall')

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

group присваивает имя группы параметрам во втором аргументе.

Ведущий аргументВторой аргументПараметры, именованные group
'addCompileFlags'optionsПараметры компилятора
'addLinkFlags'optionsПараметры связи
'addLinkObjects'filenameИмя файла, содержащего связанные объекты
'addNonBuildFiles'filenameИмя файла, не связанного со сборкой
'addSourceFiles'filenameИмя исходного файла
'addSourcePaths'pathИмя пути к исходному файлу

Вы можете использовать group кому:

  • Документирование использования определенных параметров.

  • Извлеките или примените несколько параметров вместе как одну группу.

Имя файла, указанное как вектор символа или скаляр строки. Значение должно быть константой времени компиляции.

В зависимости от ведущего аргумента, filename указывает соответствующий файл, добавляемый в информацию о построении проекта.

Ведущий аргументФайл, указанный filename
'addLinkObjects'Файл, содержащий связанные объекты
'addNonBuildFiles'Неподстроенный файл
'addSourceFiles'Исходный файл

Функция добавляет имя файла в конец вектора имени файла.

Пример: coder.updateBuildInfo('addSourceFiles', 'fact.c')

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

В зависимости от ведущего аргумента, path указывает соответствующий путь, добавляемый к информации о построении проекта. Функция добавляет путь к концу вектора имени пути.

Ведущий аргументПуть, указанный path
'addLinkObjects'Путь к связываемым объектам
'addNonBuildFiles'Путь к файлам, не связанным со сборкой
'addSourceFiles', 'addSourcePaths'Путь к исходным файлам

Относительный путь начинается с текущей рабочей папки, в которой создается код. В имени относительного пути укажите ссылку на текущую рабочую папку с помощью START_DIR макро. Например, предположим, что исходный файл fact.c содержится в C:\myCode\mySrcDir, и вы генерируете код из C:\myCode. Запишите путь, как в этом примере:

Пример: coder.updateBuildInfo('addSourceFiles','fact.c','$(START_DIR)\mySrcDir')

Приоритет объектов связи.

Эта функция применяется только при добавлении нескольких объектов связи. В настоящее время только один файл объекта ссылки может быть добавлен для каждого coder.updateBuildInfo заявление. Поэтому эта функция недоступна для использования.

Чтобы использовать последующие аргументы, включите '' в качестве аргумента-заполнителя.

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

Если объект ссылки был предварительно построен для более быстрой компиляции и связывания и существует в указанном расположении, укажите true. В противном случае процесс построения MATLAB Coder™ создает объект связи в папке построения.

Если linkonly имеет значение true, этот аргумент игнорируется.

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

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

Если требуется, чтобы процесс построения кодера MATLAB не создавал правила в make-файле для построения указанного объекта связи, укажите true. Вместо этого при связывании конечного исполняемого файла процесс должен просто включать объект. В противном случае правила построения объекта ссылки добавляются в make-файл.

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

Если linkonly имеет значение true, значение precompiled игнорируется.

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

Представлен в R2013b