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

Добавьте ссылки объекта 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}

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

свернуть все

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

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

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

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

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

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

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

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

Можно использовать group кому:

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

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

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

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

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

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

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

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

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

Ведущий аргументПуть, заданный path
'addLinkObjects'Путь к связываемым объектам
'addNonBuildFiles'Путь к файлам, не связанным с build
'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 Coder не создавал или не генерировал правила в файле make для создания заданного объекта ссылка, задайте true. Вместо этого при связывании окончательного исполняемого файла процесс должен просто включать объект. В противном случае в make-файл добавляются правила создания ссылки объекта.

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

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

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

Введенный в R2013b