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 не вызывает сделать команду или генерирует скомпилированный объектный код. Когда вы выполняете итерации между изменением кода MATLAB и генерацией кода C/C++, и вы хотите смотреть сгенерированный код, эта опция может сэкономить вам время. Эта опция эквивалентна Static Library
с выбранным полем Generate code only.
Генерация кода использует различный набор параметров конфигурации для MEX-функций, чем она использует в других типах сборки. Когда вы переключаете выходной тип между MEX Function
и Source
, Static Library
, Dynamic Library
, или Executable
, проверьте эти настройки. Для получения дополнительной информации смотрите Изменение Выходной Тип.
Вызовите codegen
с -config
опция. Например, предположите, что у вас есть первичная функция foo
это не берет входных параметров. Следующая таблица показывает, как задать различные выходные типы при компиляции foo
. Если первичная функция ввела параметры, необходимо задать эти входные параметры. Для получения дополнительной информации смотрите Specify Properties Входных параметров функции Точки входа.
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
опция.
Местоположение выходного файла не должно содержать:
Пробелы (Пробелы могут привести к отказам генерации кода в определенных настройках операционной системы).
Вкладки
\
, $
, #
, *
, ?
символы ASCII Non-7-bit, такие как японские символы.
Чтобы открыть диалоговое окно 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 параметров конфигурации сборки |
codegen в командной строке и хотят задать несколько параметров | Объекты настройки | Задайте параметры конфигурации сборки в командной строке Используя объекты настройки |
codegen в скриптах сборки | ||
codegen в командной строке и хотят задать много параметров | Диалоговые окна объекта Configuration | Определение параметров конфигурации сборки в командной строке Используя диалоговые окна |
Задайте приложение MATLAB Coder параметров конфигурации сборки
Задайте параметры конфигурации сборки в командной строке Используя объекты настройки
Определение параметров конфигурации сборки в командной строке Используя диалоговые окна
Можно задать параметры конфигурации сборки от диалогового окна настроек проекта 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
, проверьте эти настройки. Смотрите Изменение Выходной Тип.
Измените параметры как требуется. Для получения дополнительной информации о параметрах на вкладке, нажмите 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
опция. Задайте объект настройки в качестве его аргумента.
-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
Запись через точку использует операторы присваивания, чтобы изменить свойства объектов настройки:
Задавать 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-файл на своем следующем сеансе
Запишите скрипт, который создает объект настройки и устанавливает его свойства.
Создайте объект настройки как описано в Создании Объектов Настройки.
Например, чтобы создать coder.MexCodeConfig
объект настройки для генерации кода MEX:
mexcfg = coder.config('mex');
Откройте диалоговое окно свойства с помощью одного из этих методов:
В рабочем пространстве MATLAB дважды кликните переменную объекта настройки.
В посдказке MATLAB выпустите open
команда, передавая его переменная объекта настройки, как в этом примере:
open mexcfg
В диалоговом окне измените параметры конфигурации как требуется, затем нажмите Apply.
Вызовите codegen
функция с -config
опция. Задайте объект настройки в качестве его аргумента:
codegen -config mexcfg foo
-config
опция задает тип выхода, который вы хотите создать. Для получения дополнительной информации смотрите codegen
.
Диалоговое окно свойства не поддержано в MATLAB Online™.