Настройте параметры сборки

Задайте тип сборки

Типы сборки

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

  • MEX-функция

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

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

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

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

    Примечание

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

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

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

Примечание

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

Укажите тип сборки, используя приложение MATLAB Coder

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. Установите Build type в одно из следующих значений.

    • Source Code

    • MEX

    • Static Library

    • Dynamic Library

    • Executable

Если вы выбираете Source CodeMATLAB Coder не вызывает команду 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 Coder. Чтобы сгенерировать код С++, смотрите Задать язык для Генерации кода.

Чтобы сгенерировать:Используйте эту команду:
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 Coder может генерировать библиотеки на C или C++ и исполняемые файлы. C является языком по умолчанию. Язык можно задать явным образом из диалогового окна параметров проекта или в командной строке.

Укажите язык, используя приложение MATLAB Coder

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. Установите Language значение C или C++.

    Примечание

    Если вы задаете C++, MATLAB Coder переносит C код в .cpp файлы. Можно использовать C++ компилятор и интерфейс с внешними C++ приложения. MATLAB Coder не генерирует C++ классы.

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

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

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

    cfg = coder.config('lib');

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

    cfg.TargetLang = 'C++';

    Примечание

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

См. также

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

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

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. В поле Output file name введите имя файла.

Примечание

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

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

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

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

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

  • project_folder - ваша текущая папка проекта

  • target является:

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

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

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

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

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

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

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

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

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

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

  • Вкладки

  • \, $, #, *, ?

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

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. Установите Build type значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).

  3. Нажмите More Settings.

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

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

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

    • target является:

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

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

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

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

  5. Чтобы изменить расположение выхода, можно либо:

    • Установите Build Folder значение A subfolder of the current MATLAB working folder

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

    • Установите Build Folder значение Specified folder. В поле Build folder name укажите путь к папке.

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

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

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

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

Задайте параметры конфигурации сборки

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

Задайте параметры конфигурации сборки MATLAB Coder App

  1. Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.

  2. Установите Build type значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).

  3. Нажмите More Settings.

    Диалоговое окно параметров проекта содержит набор параметров конфигурации, применимых к выбранному типу выхода. Генерация кода использует другой набор параметров конфигурации для 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. Измените параметры по мере необходимости. Для получения дополнительной информации о параметрах на вкладке нажмите Help.

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

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

Типы объектов строения.   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 опция. Укажите объект строения в качестве его аргумента.

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

    codegen -config cfg foo

    The -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

Запись через точку использует операторы назначения для изменения свойств объекта строения:

  • Как задать 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-файл в следующем сеансе

 Написание скрипта, который создает объект строения и устанавливает его свойства.

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

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