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 

Вы видите добавленные параметры компилятора под вкладкой Build Logs в Отчете Генерации кода.

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

  1. Запишите заголовочному файлу fact.h это объявляет функцию C factorial.

     double factorial(double x);

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

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

  2. Запишите файл C fact.c это содержит определение 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 Code, вы видите добавленный исходный файл 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 

Вы видите добавленный объект ссылки под вкладкой Build Logs в Отчете Генерации кода.

Добавьте включать путь к информации о сборке при генерации кода для функции, 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'Путь к исходным файлам

Относительный путь начинает с папки сборки. Если у вас есть функциональный foo содержавшийся в папке C:\myCode, и вы генерируете код MEX при помощи:

codegen foo -report

затем папкой сборки является C:\myCode\codegen\mex\foo. Можно записать путь из папки сборки или записать путь из текущей рабочей папки, в которой вы генерируете код. Сошлитесь на текущую рабочую папку при помощи START_DIR макрос. Например, предположите, что ваш исходный файл содержится в C:\myCode\mySrcDir, и вы генерируете код от C:\myCode. Напишите путь как в этих примерах:

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

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

Приоритет объектов ссылки.

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

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

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

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

Если linkonly установлен в true, этот аргумент проигнорирован.

Типы данных: логический

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

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

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

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

Типы данных: логический

Введенный в R2013b