MATLAB® Coder™ можете сгенерировать код для следующих типов выходов:
MEX-функция
Автономный код C/C + +
Автономный код C/C + + и скомпилируйте его в статическую библиотеку
Автономный код C/C + + и скомпилируйте его в динамически связанную библиотеку
Автономный код C/C + + и скомпилируйте его в исполняемый файл
Примечание
Когда вы генерируете исполняемый файл, вы должны предоставить файл C/C + +, который содержит main
функция, как описано в разделе Определение основных функций для исполняемых файлов C/C + +.
По умолчанию MATLAB Coder генерирует файлы в выходных папках на основе вашего типа выхода. Для получения дополнительной информации см. «Сгенерированные файлы и местоположения».
Примечание
Каждый раз, когда MATLAB Coder генерирует один и тот же тип выхода для того же кода или проекта, он удаляет файлы из предыдущей сборки. Если вы хотите сохранить файлы из сборки, скопируйте их в другое место, прежде чем запускать другую сборку.
Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.
Установите Build type в одно из следующих значений.
Source Code
MEX
Static Library
Dynamic Library
Executable
Если вы выбираете Source Code
MATLAB 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 Примечание Вы должны задать |
Автономный код 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 Coder может генерировать библиотеки на C или C++ и исполняемые файлы. C является языком по умолчанию. Язык можно задать явным образом из диалогового окна параметров проекта или в командной строке.
Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.
Установите Language значение C
или C++
.
Примечание
Если вы задаете C++
, MATLAB Coder переносит C
код в .cpp
файлы. Можно использовать C++
компилятор и интерфейс с внешними C++
приложения. MATLAB Coder не генерирует C++
классы.
Выберите подходящий компилятор для вашего целевого языка.
Создайте объект строения для генерации кода. Для примера, для библиотеки:
cfg = coder.config('lib');
Установите TargetLang
свойство к 'C'
или 'C++'
. Для примера:
cfg.TargetLang = 'C++';
Примечание
Если вы задаете C++
, MATLAB Coder переносит C
код в .cpp
файлы. Затем можно использовать C++
компилятор и интерфейс с внешними C++
приложения. MATLAB Coder не генерирует C++
классы.
См. также
Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.
В поле 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
опция.
Расположение выходного файла не должно содержать:
Пространства (Пространства могут привести к отказам генерации кода в определенных строениях операционной системы).
Вкладки
\
, $
, #
, *
, ?
Non-7-bit символы ASCII, такие как японские символы.
Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.
Установите Build type значение Source Code
, Static Library
, Dynamic Library
, или Executable
(в зависимости от ваших требований).
Нажмите More Settings.
Перейдите на вкладку 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 + +
Чтобы изменить расположение выхода, можно либо:
Установите 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, командной строки или диалоговых окон объекта строения.
Чтобы открыть диалоговое окно Generate, на странице Generate Code щелкните стрелу Generate.
Установите Build type значение Source Code
, Static Library
, Dynamic Library
, или Executable
(в зависимости от ваших требований).
Нажмите 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
.
Измените параметры по мере необходимости. Для получения дополнительной информации о параметрах на вкладке нажмите Help.
Изменения в настройках параметра происходят немедленно.
Типы объектов строения. 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
опция. Укажите объект строения в качестве его аргумента.
The -config
инструкции по опциям codegen
для генерации кода для целевого устройства на основе значений свойств строения. В следующем примере, codegen
генерирует статическую библиотеку на C из функции MATLAB, foo
, на основе параметров объекта строения генерации кода, cfg
, заданный на первом шаге:
codegen -config cfg foo
The -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
Запись через точку использует операторы назначения для изменения свойств объекта строения:
Как задать 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-файл в следующем сеансе
Написание скрипта, который создает объект строения и устанавливает его свойства.
После создания объекта строения можно изменить свойства объекта с помощью диалогового окна параметра конфигурации. Смотрите Задать параметры конфигурации в командной строке Рабочего процесса интерактивно.