MATLAB®编码器™可以为以下输出类型生成代码:
墨西哥人的功能
独立的C/ c++代码
独立的C/ c++代码,并将其编译为静态库
独立的C/ c++代码,并将其编译为动态链接库
独立的C/ c++代码,并将其编译为可执行文件
请注意
生成可执行文件时,必须提供一个C/ c++文件主要
函数,如中所述为C/ c++可执行文件指定主函数.
默认情况下,MATLAB编码器根据输出类型在输出文件夹中生成文件。有关更多信息,请参见生成的文件和位置.
请注意
每一次MATLAB编码器为相同的代码或项目生成相同类型的输出,它将从以前的构建中删除文件。如果要保存生成版本中的文件,请在开始另一个生成版本之前将它们复制到其他位置。
打开生成对话框中的生成代码页,单击生成箭头.
集构建类型致下列之一。
源代码
墨西哥人
静态库
动态库
可执行的
如果您选择源代码
,MATLAB编码器不调用make命令或生成已编译的目标代码。当您在修改MATLAB代码和生成C/ c++代码之间进行迭代,并且希望检查生成的代码时,此选项可以节省时间。此选项相当于静态库
与只生成代码框选中。
代码生成对MEX函数使用的配置参数集与对其他构建类型使用的配置参数集不同。之间切换输出类型时墨西哥人的功能
和源
,静态库
,动态库
,或可执行的
,验证这些设置。
某些配置参数与MEX和独立代码生成都相关。如果在输出类型为时启用这些参数中的任何一个墨西哥人的功能
,并且你想对C/ c++代码生成使用相同的设置,你必须再次启用它C/ c++静态库
,c++动态库
,C / c++可执行文件
.
调用codegen
与配置
选择。例如,假设你有一个主函数喷火
它不接受输入参数。下表显示了在编译时如何指定不同的输出类型喷火
.如果主函数具有输入参数,则必须指定这些输入。有关更多信息,请参见指定入口点函数输入的属性.
请注意
C是用于代码生成的默认语言MATLAB编码器.要生成c++代码,请参见指定代码生成的语言.
生成: | 使用这个命令: |
---|---|
使用缺省代码生成选项的MEX函数 |
codegen foo |
指定代码生成选项的MEX函数 |
CFG = code .config('mex');%设置配置参数,例如,%启用代码生成报告cfg.GenerateReport=true;调用codegen,传递配置% object codegen -config cfg foo |
独立的C/ c++代码,并使用默认的代码生成选项将其编译为库 |
Codegen -config:lib foo |
独立的C/ c++代码,并将其编译为指定代码生成选项的库 |
CFG = code .config('lib');%设置配置参数,例如,%启用代码生成报告cfg.GenerateReport=true;调用codegen,传递配置% object codegen -config cfg foo |
独立的C/ c++代码,并使用默认代码生成选项将其编译为可执行文件,并指定c 文件在命令行 |
代码:exe main.c foo 请注意 您必须指定 |
独立的C/ c++代码,并将其编译为指定代码生成选项的可执行文件 |
CFG = code .config('exe');设置配置参数,例如:指定主文件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 = code .config('lib');
设置TargetLang
财产“C”
或“c++”
.例如:
cfg。TargetLang = ' c++ ';
请注意
如果你指定c++
,MATLAB编码器包装了C
代码. cpp
文件。然后你可以使用ac++
编译器和接口与外部c++
应用程序。MATLAB编码器不生成c++
类。
另请参阅
打开生成对话框中的生成代码页,单击生成箭头.
在输出文件名字段,输入文件名。
请注意
文件名中不要有空格。
默认情况下,如果第一个入口点MATLAB文件的名称为fcn1
时,输出文件名为:
fcn1
用于C/ c++库和可执行文件。
fcn1_mex
的MEX功能。
默认情况下,MATLAB编码器在文件夹中生成文件
:project_folder
/ codegen /目标/ fcn1
project_folder
您当前的项目文件夹是
目标
是:
墨西哥人
用于MEX功能
自由
用于静态C/ c++库
dll
用于动态C/ c++库
exe
用于C/ c++可执行文件
使用codegen
函数- o
选择。
输出文件位置不能包含:
空格(在某些操作系统配置中,空格可能导致代码生成失败)。
选项卡
\
,美元
,#
,*
,?
非7位ASCII字符,如日文字符。
打开生成对话框中的生成代码页,单击生成箭头.
集构建类型来源代码
,静态库
,动态库
,或可执行的
(取决于您的要求)。
点击更多的设置.
单击路径选项卡。
的默认设置建立文件夹字段是项目文件夹的子文件夹
.默认情况下,MATLAB编码器在文件夹中生成文件
:project_folder
/ codegen /目标/ fcn1
fcn1
按字母顺序排列第一个入口点文件的名称。
目标
是:
墨西哥人
用于MEX功能
自由
用于静态C/ c++库
dll
用于动态链接的C/ c++库
exe
用于C/ c++可执行文件
要更改输出位置,您可以:
集建立文件夹来当前MATLAB工作文件夹的子文件夹
MATLAB编码器在
文件夹MATLAB_working_folder
/ codegen /目标/ fcn1
集建立文件夹来指定的文件夹
.在构建文件夹名称字段,提供文件夹的路径。
使用codegen
函数- d
选择。
如果你正在使用 | 使用 | 细节 |
---|---|---|
的MATLAB编码器应用程序 | 项目设置对话框。 | 指定构建配置参数MATLAB编码器应用程序 |
codegen 在命令行中,并希望指定一些参数 |
配置对象 | 在命令行上使用配置对象指定生成配置参数 |
codegen 在构建脚本中 |
||
codegen 在命令行中,并希望指定许多参数 |
配置对象对话框 | 在命令行中使用对话框指定生成配置参数 |
属性中指定生成配置参数MATLAB编码器“项目设置”对话框、命令行或配置对象对话框。
打开生成对话框中的生成代码页,单击生成箭头.
集构建类型来源代码
,静态库
,动态库
,或可执行的
(取决于您的要求)。
点击更多的设置.
项目设置对话框提供了一组适用于所选输出类型的配置参数。代码生成对MEX函数使用的配置参数集与对其他构建类型使用的配置参数集不同。之间切换输出类型时墨西哥人的功能
和源代码
,静态库
,动态库
,或可执行的
,验证这些设置。
某些配置参数与MEX和独立代码生成都相关。如果在输出类型为时启用这些参数中的任何一个墨西哥人的功能
,并且你想对C/ c++代码生成使用相同的设置,你必须再次启用它C/ c++静态库
,c++动态库
,C / c++可执行文件
.
请根据实际情况修改参数。单击,浏览各页签参数的详细信息帮助.
参数设置的更改立即发生。
配置对象类型。的codegen
函数使用配置对象自定义代码生成环境。可选的配置对象如下表所示。
配置对象 | 描述 |
---|---|
如果没有嵌入式编码器®许可证是可用的,或者您禁用使用嵌入式Coder许可证,为C/ c++库或可执行文件生成指定参数。 |
|
如果有嵌入式编码器许可证,则指定C/ c++库或可执行文件生成的参数。 |
|
指定目标硬件实现的参数。如果没有指定, |
|
指定生成MEX代码的参数。 |
使用配置对象。使用配置对象定制代码生成环境:
在MATLAB工作区中,定义配置对象变量,如中所述创建配置对象.
例如,为C静态库生成一个配置对象:
CFG = code .config('lib');返回一个编码器。CodeConfigobject if no % Embedded Coder license available. % Otherwise, returns a coder.EmbeddedCodeConfig object.
根据需要修改配置对象的参数,使用以下方法之一:
交互式命令,如中所述在命令行上使用配置对象指定生成配置参数
对话框,如中所述在命令行中使用对话框指定生成配置参数
调用codegen
函数与配置
选择。指定配置对象作为参数。
的配置
选项指示codegen
要根据配置属性值为目标生成代码。在下面的例子中,codegen
从MATLAB函数生成C静态库,喷火
,根据代码生成配置对象的参数,cfg
,在第一步中定义:
CFG foo
的配置
option指定要构建的输出类型——在本例中,是C静态库。有关更多信息,请参见codegen
.
创建配置对象。您可以在MATLAB工作区中定义配置对象。
创建… | 使用命令,例如… |
---|---|
MEX配置对象编码器。MexCodeConfig |
CFG = code .config('mex'); |
代码生成配置对象,用于生成独立的C/ c++库或可执行文件编码器。CodeConfig |
生成静态库cfg = code .config('lib');生成一个可执行文件cfg = code .config('exe'); 请注意 如果有嵌入式编码器许可证,则创建 如果您使用并发许可证,要禁用嵌入式Coder许可证的签出,请使用以下命令之一: CFG =编码器。Config ('lib', 'ecoder', false) CFG =编码器。Config ('dll', 'ecoder', false) CFG =编码器。Config ('exe', 'ecoder', false) |
代码生成配置对象,用于为嵌入式目标生成独立的C/ c++库或可执行文件编码器。EmbeddedCodeConfig |
生成静态库cfg = code .config('lib');生成一个可执行文件cfg = code .config('exe'); 请注意 需要嵌入式编码器许可证;否则创建 |
硬件实现配置对象编码器。HardwareImplementation |
HWCFG =编码器。HardwareImplementation |
每个配置对象都带有一组参数,初始化为默认值。您可以更改这些设置,如使用点符号修改命令行配置对象.
使用点符号修改命令行配置对象。您可以使用点表示法一次修改一个配置对象参数的值。使用以下语法:
configuration_object.财产=价值
点表示法使用赋值语句修改配置对象属性:
要指定主要
函数在C/ c++代码生成过程中:
CFG = code .config('exe');cfg。CustomInclude = 'c:\myfiles'; cfg.CustomSource = 'main.c'; codegen -config cfg foo
在生成C/ c++静态库后自动生成并启动代码生成报告:
CFG = code .config('lib');cfg。GenerateReport = true;cfg。LaunchReport = true;CFG foo
保存配置对象。配置对象不会在MATLAB会话之间自动保存。使用以下方法之一保存您的设置:
中不支持属性对话框金宝appMATLAB在线™.