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