MATLAB ® Coder™ может генерировать код для следующих типов выходных данных :
Функция MEX
Автономный код C/C + +
Автономный код C/C + + и компиляция его в статическую библиотеку
Автономный код C/C + + и компиляция его в динамически связанную библиотеку
Автономный код C/C + + и компиляция его в исполняемый файл
Примечание
При создании исполняемого файла необходимо указать файл C/C + +, содержащий main , как описано в разделе Определение основных функций для исполняемых файлов C/C + +.
По умолчанию кодер MATLAB создает файлы в папках вывода на основе типа вывода. Дополнительные сведения см. в разделе Сгенерированные файлы и расположения.
Примечание
Каждый раз, когда кодер MATLAB генерирует один и тот же тип выходных данных для одного и того же кода или проекта, он удаляет файлы из предыдущей сборки. Если необходимо сохранить файлы из сборки, скопируйте их в другое место перед запуском другой сборки.
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
Установите один из следующих типов построения.
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 Примечание Необходимо указать |
| Автономный код 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Примечание Необходимо указать |
Кодер MATLAB может создавать библиотеки и исполняемые файлы C или C++. По умолчанию используется язык C. Язык можно указать явно в диалоговом окне параметров проекта или в командной строке.
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
Задать язык как C или C++.
Примечание
При указании C++, Кодер MATLAB оборачивает C код в .cpp файлы. Вы можете использовать C++ компилятор и интерфейс с внешним C++ приложения. Кодер MATLAB не создается C++ классы.
Выберите подходящий компилятор для целевого языка.
Создайте объект конфигурации для создания кода. Например, для библиотеки:
cfg = coder.config('lib');Установите TargetLang свойство для 'C' или 'C++'. Например:
cfg.TargetLang = 'C++';
Примечание
При указании C++, Кодер MATLAB оборачивает C код в .cpp файлы. Затем можно использовать C++ компилятор и интерфейс с внешним C++ приложения. Кодер MATLAB не создается C++ классы.
См. также
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
В поле Имя выходного файла введите имя файла.
Примечание
Не помещайте пробелы в имя файла.
По умолчанию, если имя первого файла 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 вариант.
Расположение выходного файла не должно содержать:
Пробелы (пробелы могут привести к сбоям генерации кода в определенных конфигурациях операционной системы).
Счета
\, $, #, *, ?
Non-7-bit символов ASCII, например японских символов.
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
Задать для типа построения значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).
Щелкните Дополнительные параметры.
Перейдите на вкладку «Пути».
Значение по умолчанию для поля Папка сборки: 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 + +
Для изменения местоположения вывода можно выполнить одно из следующих действий:
Задать для папки построения значение 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», в командной строке или в диалоговых окнах объектов конфигурации.
Чтобы открыть диалоговое окно «Генерация», на странице «Генерация кода» щелкните стрелку «Генерация».![]()
Задать для типа построения значение Source Code, Static Library, Dynamic Library, или Executable (в зависимости от ваших требований).
Щелкните Дополнительные параметры.
Диалоговое окно параметров проекта содержит набор параметров конфигурации, применимых к выбранному типу вывода. При создании кода для функций 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.
При необходимости измените параметры. Для получения дополнительных сведений о параметрах на вкладке нажмите кнопку Справка.
Изменения настроек параметров происходят немедленно.
Типы объектов конфигурации. codegen использует объекты конфигурации для настройки среды для создания кода. В следующей таблице перечислены доступные объекты конфигурации.
| Объект конфигурации | Описание |
|---|---|
Если лицензия Embedded Coder ® отсутствует или вы отключаете использование лицензии Embedded Coder, укажите параметры для библиотеки C/C + + или исполняемого файла. | |
Если доступна лицензия Embedded Coder, указывает параметры для библиотеки C/C + + или создания исполняемого файла. | |
Определяет параметры реализации целевого аппаратного обеспечения. Если не указано, | |
Указывает параметры для создания кода MEX. |
Работа с объектами конфигурации. Чтобы использовать объекты конфигурации для настройки среды для создания кода, выполните следующие действия.
В рабочей области MATLAB определите переменные объекта конфигурации, как описано в разделе Создание объектов конфигурации.
Например, чтобы создать объект конфигурации для генерации статической библиотеки C:
cfg = coder.config('lib');
% Returns a coder.CodeConfig object if no
% Embedded Coder license available.
% Otherwise, returns a coder.EmbeddedCodeConfig object.При необходимости измените параметры объекта конфигурации, используя один из следующих методов:
Интерактивные команды, как описано в разделе Определение параметров конфигурации построения в командной строке с использованием объектов конфигурации
Диалоговые окна, как описано в разделе Задание параметров конфигурации построения в командной строке с помощью диалоговых окон
Позвоните в codegen функции с помощью -config вариант. Укажите объект конфигурации в качестве аргумента.
-config опция инструктирует codegen для создания кода для целевого объекта на основе значений свойств конфигурации. В следующем примере: codegen создает статическую библиотеку C из функции MATLAB, foo, основываясь на параметрах объекта конфигурации генерации кода, cfg, определенный на первом шаге:
codegen -config cfg foo
-config параметр указывает тип вывода, который требуется построить - в данном случае статическую библиотеку C. Дополнительные сведения см. в разделе codegen.
Создание объектов конфигурации. Объект конфигурации можно определить в рабочей области MATLAB.
| Создание... | Использовать команду типа... |
|---|---|
Объект конфигурации MEXcoder.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, создает При использовании параллельных лицензий для отключения извлечения лицензии 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.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-файл в следующем сеансе
Напишите сценарий, создающий объект конфигурации и задающий его свойства.
После создания объекта конфигурации можно изменить свойства объекта с помощью диалогового окна параметров конфигурации. См. раздел Определение параметров конфигурации в рабочем процессе командной строки в интерактивном режиме.