exponenta event banner

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

Указать тип построения

Типы построений

MATLAB ® Coder™ может генерировать код для следующих типов выходных данных :

  • Функция MEX

  • Автономный код C/C + +

  • Автономный код C/C + + и компиляция его в статическую библиотеку

  • Автономный код C/C + + и компиляция его в динамически связанную библиотеку

  • Автономный код C/C + + и компиляция его в исполняемый файл

    Примечание

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

Расположение созданных файлов

По умолчанию кодер MATLAB создает файлы в папках вывода на основе типа вывода. Дополнительные сведения см. в разделе Сгенерированные файлы и расположения.

Примечание

Каждый раз, когда кодер MATLAB генерирует один и тот же тип выходных данных для одного и того же кода или проекта, он удаляет файлы из предыдущей сборки. Если необходимо сохранить файлы из сборки, скопируйте их в другое место перед запуском другой сборки.

Укажите тип сборки с помощью приложения кодера MATLAB

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

  2. Установите один из следующих типов построения.

    • Source Code

    • MEX

    • Static Library

    • Dynamic Library

    • Executable

При выборе Source Code, кодер MATLAB не вызывает команду make и не генерирует скомпилированный объектный код. При итерации между изменением кода MATLAB и созданием кода C/C + + и необходимости проверки созданного кода эта опция позволяет сэкономить время. Эта опция эквивалентна Static Library с установленным полем Только генерировать код (Generate code only).

При создании кода для функций MEX используется другой набор параметров конфигурации, чем для других типов сборки. При переключении типа вывода между MEX Function и Source, Static Library, Dynamic Library, или Executableпроверьте эти параметры.

Некоторые параметры конфигурации являются релевантными как для MEX, так и для автономной генерации кода. Если включить любой из этих параметров, если тип вывода MEX Function, и вы хотите использовать тот же параметр для генерации кода C/C + +, вы должны включить его снова дляC/C++ Static Library, C/C++ Dynamic Library, и C/C++ Executable.

Указание типа построения в командной строке

Звонить codegen с -config вариант. Например, предположим, что у вас есть первичная функция foo не принимает входные параметры. В следующей таблице показано, как указать различные типы выходных данных при компиляции foo. Если первичная функция имеет входные параметры, необходимо указать эти входные данные. Дополнительные сведения см. в разделе Задание свойств входов функции точки входа.

Примечание

C является языком по умолчанию для генерации кода с кодером MATLAB. Чтобы создать код C++, см. раздел Указание языка для создания кода.

Создание:Используйте следующую команду:
Функция MEX с использованием опций генерации кода по умолчанию

codegen foo

Функция MEX, определяющая параметры генерации кода

cfg = coder.config('mex');
% Set configuration parameters, for example,
% enable a code generation report
cfg.GenerateReport=true;
% Call codegen, passing the configuration 
% object
codegen -config cfg foo

Автономный код C/C + + и компиляция его в библиотеку с использованием параметров генерации кода по умолчанию
codegen -config:lib foo
Автономный код C/C + + и компиляция его в библиотеку, задающую параметры создания кода

cfg = coder.config('lib');
% Set configuration parameters, for example, 
% enable a code generation report
cfg.GenerateReport=true;
% Call codegen, passing the configuration 
% object
codegen -config cfg foo

Автономный код C/C + + и компиляция его в исполняемый файл с помощью параметров генерации кода по умолчанию и указания main.c файл в командной строке

codegen -config:exe main.c foo

Примечание

Необходимо указать main для генерации исполняемого файла C/C + +. См. раздел Определение основных функций для исполняемых файлов C/C + +

Автономный код C/C + + и компиляция его в исполняемый файл, определяющий параметры создания кода

cfg = coder.config('exe');
% Set configuration parameters, for example,
%  specify main file
cfg.CustomSource = 'main.c';
cfg.CustomInclude = 'c:\myfiles';
codegen -config cfg foo

Примечание

Необходимо указать main для генерации исполняемого файла C/C + +. См. раздел Определение основных функций для исполняемых файлов C/C + +

Укажите язык для создания кода

Кодер MATLAB может создавать библиотеки и исполняемые файлы C или C++. По умолчанию используется язык C. Язык можно указать явно в диалоговом окне параметров проекта или в командной строке.

Укажите язык с помощью приложения кодера MATLAB

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

  2. Задать язык как C или C++.

    Примечание

    При указании C++, Кодер MATLAB оборачивает C код в .cpp файлы. Вы можете использовать C++ компилятор и интерфейс с внешним C++ приложения. Кодер MATLAB не создается C++ классы.

Определение языка с помощью интерфейса командной строки

  1. Выберите подходящий компилятор для целевого языка.

  2. Создайте объект конфигурации для создания кода. Например, для библиотеки:

    cfg = coder.config('lib');

  3. Установите TargetLang свойство для 'C' или 'C++'. Например:

    cfg.TargetLang = 'C++';

    Примечание

    При указании C++, Кодер MATLAB оборачивает C код в .cpp файлы. Затем можно использовать C++ компилятор и интерфейс с внешним C++ приложения. Кодер MATLAB не создается C++ классы.

См. также

Укажите имя выходного файла

Укажите имя выходного файла с помощью приложения кодера MATLAB

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

  2. В поле Имя выходного файла введите имя файла.

Примечание

Не помещайте пробелы в имя файла.

По умолчанию, если имя первого файла MATLAB точки входа равно fcn1, имя выходного файла:

  • fcn1 для библиотек C/C + + и исполняемых файлов.

  • fcn1_mex для функций MEX.

По умолчанию кодер MATLAB создает файлы в папке project_folder/codegen/target/fcn1:

  • project_folder является текущей папкой проекта

  • target является:

    • mex для функций MEX

    • lib для статических библиотек C/C + +

    • dll для динамических библиотек C/C + +

    • exe для исполняемых файлов C/C + +

Альтернатива командной строки

Используйте codegen функция -o вариант.

Укажите расположения выходных файлов

Укажите расположение выходного файла с помощью приложения кодера MATLAB

Расположение выходного файла не должно содержать:

  • Пробелы (пробелы могут привести к сбоям генерации кода в определенных конфигурациях операционной системы).

  • Счета

  • \, $, #, *, ?

  • Non-7-bit символов ASCII, например японских символов.

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

  2. Задать для типа построения значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).

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

  4. Перейдите на вкладку «Пути».

    Значение по умолчанию для поля Папка сборки: A subfolder of the project folder. По умолчанию кодер MATLAB создает файлы в папке project_folder/codegen/target/fcn1:

    • fcn1 - имя первого файла точки входа в алфавитном порядке.

    • target является:

      • mex для функций MEX

      • lib для статических библиотек C/C + +

      • dll для динамически связанных библиотек C/C + +

      • exe для исполняемых файлов C/C + +

  5. Для изменения местоположения вывода можно выполнить одно из следующих действий:

    • Задать для папки построения значение A subfolder of the current MATLAB working folder

      Кодер MATLAB генерирует файлы в MATLAB_working_folder/codegen/target/fcn1 папка

    • Задать для папки построения значение Specified folder. В поле Имя папки построения укажите путь к папке.

Альтернатива командной строки

Используйте codegen функция -d вариант.

Методы спецификации параметров

Если используетсяИспользоватьПодробнее
Приложение Кодер MATLABДиалоговое окно параметров проекта. Укажите параметры конфигурации построения Приложение кодера MATLAB
codegen в командной строке и хотите указать несколько параметровОбъекты конфигурацииЗадание параметров конфигурации построения в командной строке с использованием объектов конфигурации
codegen в сценариях построения
codegen в командной строке и хотите указать много параметровДиалоговые окна объекта конфигурацииЗадание параметров конфигурации построения в командной строке с помощью диалоговых окон

Укажите параметры конфигурации построения

Параметры конфигурации построения можно задать в диалоговом окне «Параметры проекта кодера MATLAB», в командной строке или в диалоговых окнах объектов конфигурации.

Укажите параметры конфигурации построения Приложение кодера MATLAB

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

  2. Задать для типа построения значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).

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

    Диалоговое окно параметров проекта содержит набор параметров конфигурации, применимых к выбранному типу вывода. При создании кода для функций MEX используется другой набор параметров конфигурации, чем для других типов сборки. При переключении типа вывода между MEX Function и Source Code, Static Library, Dynamic Library, или Executableпроверьте эти параметры.

    Некоторые параметры конфигурации являются релевантными как для MEX, так и для автономной генерации кода. Если включить любой из этих параметров, если тип вывода MEX Function, и вы хотите использовать тот же параметр для генерации кода C/C + +, вы должны включить его снова дляC/C++ Static Library, C/C++ Dynamic Library, и C/C++ Executable.

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

    Изменения настроек параметров происходят немедленно.

Задание параметров конфигурации построения в командной строке с использованием объектов конфигурации

Типы объектов конфигурации.   codegen использует объекты конфигурации для настройки среды для создания кода. В следующей таблице перечислены доступные объекты конфигурации.

Объект конфигурацииОписание

coder.CodeConfig

Если лицензия Embedded Coder ® отсутствует или вы отключаете использование лицензии Embedded Coder, укажите параметры для библиотеки C/C + + или исполняемого файла.

coder.EmbeddedCodeConfig

Если доступна лицензия Embedded Coder, указывает параметры для библиотеки C/C + + или создания исполняемого файла.

coder.HardwareImplementation

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

coder.MexCodeConfig

Указывает параметры для создания кода MEX.

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

  1. В рабочей области MATLAB определите переменные объекта конфигурации, как описано в разделе Создание объектов конфигурации.

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

    cfg = coder.config('lib');
    % Returns a coder.CodeConfig object if no
    % Embedded Coder license available. 
    % Otherwise, returns a coder.EmbeddedCodeConfig object.

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

  3. Позвоните в codegen функции с помощью -config вариант. Укажите объект конфигурации в качестве аргумента.

    -config опция инструктирует codegen для создания кода для целевого объекта на основе значений свойств конфигурации. В следующем примере: codegen создает статическую библиотеку C из функции MATLAB, foo, основываясь на параметрах объекта конфигурации генерации кода, cfg, определенный на первом шаге:

    codegen -config cfg foo

    -config параметр указывает тип вывода, который требуется построить - в данном случае статическую библиотеку C. Дополнительные сведения см. в разделе codegen.

Создание объектов конфигурации.  Объект конфигурации можно определить в рабочей области MATLAB.

Создание...Использовать команду типа...
Объект конфигурации MEX

coder.MexCodeConfig
cfg = coder.config('mex');
Объект конфигурации создания кода для создания автономной библиотеки C/C + + или исполняемого файла

coder.CodeConfig
% To generate a static library
cfg = coder.config('lib');
% To generate a dynamic library
cfg = coder.config('dll')
% To generate an executable
cfg = coder.config('exe');

Примечание

Если доступна лицензия Embedded Coder, создает coder.EmbeddedCodeConfig объект.

При использовании параллельных лицензий для отключения извлечения лицензии Embedded Coder используйте одну из следующих команд.

cfg = coder.config('lib', 'ecoder', false)

cfg = coder.config('dll', 'ecoder', false)

cfg = coder.config('exe', 'ecoder', false)

Объект конфигурации создания кода для создания автономной библиотеки C/C + + или исполняемого файла для встроенного целевого объекта

coder.EmbeddedCodeConfig
% To generate a static library
cfg = coder.config('lib');
% To generate a dynamic library
cfg = coder.config('dll')
% To generate an executable
cfg = coder.config('exe');

Примечание

Требуется лицензия Embedded Coder; в противном случае создает coder.CodeConfig объект.

Объект конфигурации реализации аппаратного обеспечения

coder.HardwareImplementation
hwcfg = coder.HardwareImplementation

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

Изменение объектов конфигурации в командной строке с помощью точечного обозначения.  Точечную нотацию можно использовать для изменения значения одного параметра объекта конфигурации одновременно. Используйте следующий синтаксис:

configuration_object.property = value

Точечная нотация использует инструкции assignment для изменения свойств объекта конфигурации:

  • Чтобы указать main функция при формировании кода C/C + +:

    cfg = coder.config('exe');
    cfg.CustomInclude = 'c:\myfiles';
    cfg.CustomSource = 'main.c';
    codegen -config cfg foo
    

  • Для автоматического создания и запуска отчетов о создании кода после создания статической библиотеки C/C + +:

    cfg = coder.config('lib');
    cfg.GenerateReport= true;
    cfg.LaunchReport = true;
    codegen -config cfg  foo

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

 Сохраните объект конфигурации в MAT-файл, а затем загрузите MAT-файл в следующем сеансе

 Напишите сценарий, создающий объект конфигурации и задающий его свойства.

Задание параметров конфигурации построения в командной строке с помощью диалоговых окон

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