用于从生成C/C++代码的配置参数MATLAB代码
一种编码器。CodeConfig
对象包含所需的配置参数codegen
用于生成静态库,动态链接库或可执行程序。将物体传递给codegen
函数的配置
选项。
cfg=coder.config(
为指定的构建类型创建代码生成配置对象,该类型可以是静态库、动态链接库或可执行程序。如果嵌入式编码器®产品没有安装,它创建一个build_type
)编码器。CodeConfig
对象。否则,它将创建编码器。EmbeddedCodeConfig
对象。
cfg=coder.config(
创建一个build_type
“是”,假)编码器。CodeConfig
对象的指定输出类型,即使已安装Embedded Coder。
build_type
-从生成的C/ c++代码构建的输出“自由”
|“DLL”
|'可执行程序'
从生成的C/ c++代码构建的输出,指定为该表中的值之一。
价值 | 描述 |
---|---|
“自由” |
静态库 |
“DLL” |
动态链接库 |
'可执行程序' |
可执行程序 |
BuildConfiguration
-工具链的编译器优化或调试设置“快跑”
(默认)|“加快构建”
|'debug'
|“指定”
工具链的编译器优化或调试设置,指定为该表中的值之一。
价值 | 描述 |
---|---|
“加快构建” |
优化构建以缩短构建时间。 |
“快跑” |
优化构建以更快地运行可执行文件。 |
'debug' |
优化构建以进行调试。 |
“指定” |
启用 |
CodeFormattingTool
-生成代码的格式化工具“汽车”
(默认)|“Clang-format”
|'mathworks'
生成代码的代码格式化选项,指定为表中的值之一。
价值 | 描述 |
---|---|
“Clang-format” |
代码生成器将生成的代码按照 |
“汽车” |
使用内部启发式来确定生成的代码是否格式化 确定生成的代码是否格式化 |
'mathworks' |
使代码生成器恢复为MathWorks格式化工具。 |
CodeReplacementLibrary
-生成代码的代码替换库代码替换库生成的代码,指定为表中的值之一:
价值 | 描述 |
---|---|
“没有” |
此值为默认值。 不使用代码替换库。 |
命名代码替换库 | 生成对特定平台、编译器或标准代码替换库的调用。命名库的列表取决于:
|
兼容库依赖于这些参数:
TargetLang
TargetLangStandard
ProdHWDeviceType
在硬件实现配置对象中。
嵌入式编码器提供更多库和创建和使用自定义代码替换库的能力。
MATLAB®编码器™的最小集#包括
所选代码替换库所需的头文件的语句。
在设置此参数之前,请验证编译器是否支持要使用的库。金宝app如果选择编译器不支持的参数值,则可能发生编译器错误。金宝app
笔记
MATLAB编码器软件不支持TLC回调。金宝app
CompileTimeRecursionLimit
-用于编译时递归的函数专门化的最大数目编译时间递归的最大函数专业数,指定为正整数。禁止在Matlab代码中递归,设置CompileTimeRecursionLimit
对于0,默认的编译时间递归限制足以满足需要此类递归的大多数递归函数。如果代码生成因编译时间递归限制而失败,并且您希望编译时间递归,请尝试增加限制。或者,更改MATLAB代码,以便代码生成器使用运行时间递归。看达到编译时间递归限制.
恒定折叠时间
-常量文件夹要执行的最大指令数常量文件夹执行的最大指令数。在某些情况下,代码生成需要特定的指令保持不变。如果常量折叠在这些指令常量折叠之前停止,则代码生成失败。在这种情况下,增加的价值恒定折叠时间
.
CppInterfaceClassName
-生成的C ++代码的接口类名称''
(默认)|特征向量使用生成c++代码时接口类的名称CppInterfaceStyle
着手'方法'
.在这种情况下,MATLAB入门点函数的生成代码由C ++类中包含的方法组成,其中名称指定CppInterfaceClassName
.此属性在设置时无效CppInterfaceStyle
来“功能”
.
CppInterfaceStyle
-生成的c++代码的接口样式“功能”
(默认)|'方法'
为您生成代码的MATLAB入口点函数生成的c++代码的接口风格。默认情况下,入口点函数变成c++函数。如果你选择'方法'
,则入口点函数成为c++类中的方法。使用属性指定类的名称CppInterfaceClassName
.
附属国:
环境TargetLang
来“c++”
支持这个参数。
CppPackagesToNamespaces
-为MATLAB包生成C ++命名空间真正的
(默认)|假的
是否为MATLAB代码中的包生成C ++命名空间,指定为此表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器为MATLAB代码中的包生成c++名称空间。看将生成的c++代码组织到命名空间中. |
假的 |
代码生成器不会为MATLAB代码中的包生成c++名称空间。 |
附属国:
环境TargetLang
来“c++”
支持这个参数。
数据类型:逻辑
CppNamespace
-生成的c++代码的名称空间''
(默认)|特征向量CppNamespaceForMathworksCode
-在单独的命名空间中为Mathworks代码生成的C ++代码“编码器”
(默认)|特征向量为Mathworks代码生成的C ++代码的命名空间。如果将此属性指定为空字符向量,则代码生成器不会生成此类命名空间。
附属国:
环境TargetLang
来“c++”
支持这个参数。
数据类型:字符
CPPPRESERVEClasses.
-为Matlab类生成C ++类真正的
(默认)|假的
是否为MATLAB类生成c++类或C风格结构,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器为MATLAB类生成c++类。看生成MATLAB类的C++类. |
假的 |
代码生成器为MATLAB类生成C风格的结构。 |
附属国:
环境TargetLang
来“c++”
支持这个参数。
数据类型:逻辑
CustomBLASCallback
-Blas回调类在MATLAB代码中为某些低级向量和矩阵操作生成的代码中用于BLAS库调用的回调类,指定为字符向量。
如果您为某些低级向量和矩阵函数指定了BLAS回调类,那么代码生成器将通过使用BLAS库的CBLAS C接口生成BLAS调用。回调类提供了CBLAS头文件的名称、CBLAS数据类型的名称以及链接到BLAS库所需的信息。如果该参数为空,代码生成器将为矩阵函数生成代码,而不是BLAS调用。
CustomFFTCallback
-用于FFTW库调用的回调类在MATLAB代码中为FFT函数生成的代码中FFTW库调用的回调类,指定为字符向量。
为了提高FFT函数的执行速度,代码生成器生成对您在回调类中指定的FFTW库的调用。如果该参数为空,代码生成器将使用自己的FFT函数算法,而不是调用FFTW库。
CompuoreHeaderCode.
-出现在生成的C/ c++头文件顶部的自定义代码自定义代码,显示在从MATLAB代码生成的每个C/C++头文件顶部附近,除了rtwtypes.h
和rtwhalf.h
,指定为字符向量。
CustomInclude.
-包括要添加到包含路径的文件夹,用于编译生成的代码在编译生成的代码时,包括要添加到Include路径的文件夹。将包含文件夹列表指定为字符串数组、字符向量的单元格数组或字符向量。
多个文件夹名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中字符向量的单元格数组 |
特征向量 | 单独包含文件夹 笔记 使用字符向量指定代码配置对象中的多个条目将在将来的版本中删除。使用字符串阵列和字符阵列,而不是字符向量。有关更多信息,请参见兼容性的考虑. |
CustomInitializer
-自定义代码包含在生成的初始化函数中要包含在生成的初始化函数中的自定义代码,指定为字符向量。
CustomLAPACKCallback
-LAPACK callback类Lapack库的回调类呼叫在Matlab代码中为某些线性代数函数生成的代码,指定为字符向量。
如果您指定了一个LAPACK回调类,对于某些线性代数函数,代码生成器通过使用LAPACK库的LAPACKE C接口产生LAPACK调用。回调类提供LAPACKE头文件的名称和链接到LAPACK库所需的信息。如果该参数为空,代码生成器将生成线性代数函数的代码,而不是LAPACK调用。
CustomLibrary
-与生成的代码链接的静态库文件静态库文件与生成的代码链接,指定为字符串数组,字符向量或字符向量的单元格数组。
多个静态库文件名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中字符向量的单元格数组 |
特征向量 | 用。分隔静态库文件名 笔记 使用字符向量指定代码配置对象中的多个条目将在将来的版本中删除。使用字符串阵列和字符阵列,而不是字符向量。有关更多信息,请参见兼容性的考虑. |
CustomSource.
-要编译并与生成的代码链接的源文件要编译并与生成的代码链接的源文件,指定为字符串数组、字符向量的单元格数组或字符向量。
构建过程首先在当前文件夹中搜索源文件,然后在您指定的包含文件夹中CustomInclude.
.如果在搜索路径上的多个文件夹中出现具有相同名称的源文件,则构建过程可能会使用不同的文件,而不是您指定的文件。
假设你指定foo.cpp
作为源文件。如果富科
和foo.cpp
都在搜索路径上,您无法确定构建过程是否使用富科
或foo.cpp
.
多个源文件名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中字符向量的单元格数组 |
特征向量 | 将源文件名用 笔记 使用字符向量指定代码配置对象中的多个条目将在将来的版本中删除。使用字符串阵列和字符阵列,而不是字符向量。有关更多信息,请参见兼容性的考虑. |
CustomSourceCode
-代码显示在生成的顶部附近.c
或. cpp
文件指定代码显示在每个生成的顶部附近.c
或. cpp
文件(除了rtwhalf.c
或rtwhalf.cpp
),在任何功能之外。将代码指定为字符向量。
请勿指定C静态函数定义。
CustomTerminator
-生成的终止功能中显示的代码出现在生成的终止函数中的代码,指定为字符向量。
customtoolchainoptions.
-选定工具链中的工具的自定义设置在选定的工具链中自定义工具的设置,指定为单元格数组。
依赖关系:
这工具链
属性确定在单元格数组中出现哪些工具和选项。
设置BuildConfiguration
财产指定
使customtoolchainoptions.
.
首先,获取当前设置。例如:
cfg=coder.config('lib');cfg。BuildConfiguration =“指定”;opt = cfg.customtoolchainoptions.
然后,编辑其中的值选择
.
这些值来自工具链定义文件和第三方编译器选项。看自定义工具链登记.
DataTypeReplacement
-生成代码中的数据类型替换“CBuiltIn”
|“CoderTypeDefs”
生成代码中的数据类型替换,指定为该表中的值之一。
价值 | 描述 |
---|---|
“CBuiltIn” |
此值为默认值。 代码生成器使用内置C数据类型。 |
“CoderTypeDefs” |
代码生成器使用预定义的数据类型rtwtypes.h |
DeeplearningConfig
-用于深度学习代码生成的配置对象Coder.mkldnnconfig
目的|编码器。一种RMNEONConfig
目的深度学习网络代码生成的配置对象,指定为Coder.mkldnnconfig
对象或一个编码器。一种RMNEONConfig
对象。
一种Coder.mkldnnconfig
对象包含特定于使用Intel进行深度学习的c++代码生成的参数®MKL-DNN。创建Coder.mkldnnconfig
对象,使用coder.deeplearningconfig
. 例如:
cfg=coder.config('mex');cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”);
一种编码器。一种RMNEONConfig
对象包含特定于使用ARM进行深度学习的c++代码生成的参数®计算库。创建一个编码器。一种RMNEONConfig
对象,使用coder.deeplearningconfig
. 例如:
cfg=coder.config('lib');cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“arm-compute”);
深度学习网络的代码生成需要deep learning Toolbox™和MATLAB编码器界面为深度学习库金宝app支持包。
看MKL-DNN的深度学习网络代码生成和ARM Compute库的深度学习网络代码生成.
依赖:如果DeeplearningConfig
是集,codegen
套TargetLang
来c++
.
描述
-对象描述类CodeConfig: C代码生成配置。
(默认)|特征向量对象描述,指定为字符向量。
DynamicMemoryAllocation
-动态内存分配方式“阈值”
(默认)|'AllvariablesizeAray'
|“关闭”
动态内存分配模式,指定为此表中的一个值。
价值 | 描述 |
---|---|
“阈值” |
此值为默认值。 代码生成器在变量大小阵列的堆上动态分配内存,其大小(以字节为单位)大于或等于 |
'AllvariablesizeAray' |
代码生成器动态地为堆上所有大小可变的数组分配内存。 |
“关闭” |
代码生成器静态地为堆栈上的可变大小数组分配内存。 |
无限的可变大小阵列需要动态内存分配。
依赖关系:
EnableVariableSizing
支持这个参数。
设置这一点DynamicMemoryAllocation
来“阈值”
启用DynamicMemoryAllocationThreshold
参数。
DynamicMemoryAllocationInterface
-在生成的函数接口上动态分配数组“汽车”
(默认)|“C”
|“c++”
在生成的C/ c++函数的接口上实现动态分配的数组,指定为该表中的值之一。
价值 | 描述 |
---|---|
“汽车” |
这是默认值。如果你设置 |
“C” |
生成的代码使用C风格 |
“c++” |
如果你设置 否则,生成的代码将使用 |
附属国:
EnableVariableSizing
支持这个参数。
DynamicMemoryAllocationThreshold
-变量大小阵列动态内存分配的大小阈值65536
(默认)|正整数可变大小数组的动态内存分配的大小阈值,指定为正整数。代码生成器对大小(以字节为单位)大于或等于阈值的可变大小数组使用动态内存分配。
附属国:
环境DynamicMemoryAllocation
来“阈值”
支持这个参数。
启用自动外部调用
-自动外部函数调用真正的
(默认)|假的
自动外部函数调用,指定为表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器将一些常见的可视化函数视为外部函数。您不必通过使用将这些函数声明为外部函数 |
假的 |
代码生成器不会将常见可视化函数视为外部函数,除非您通过使用声明它们为外部函数编码器.Extrinsic. . |
一些常见的可视化功能是情节
那disp
,数字
.看使用MATLAB引擎在生成的代码中执行函数调用.
EnableAutoParallelization
-自动并行化对于
循环假的
(默认)|真正的
自动并行化对于
循环,指定为此表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器不会自动并行化 |
真正的 |
代码生成器自动并行化 |
数据类型:逻辑
启用emcpy
-梅检
优化真正的
(默认)|假的
梅检
优化,指定为此表中的一个值。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 如果可能,代码生成器使用 |
假的 |
代码生成器不使用 |
EnableOpenMP
-并行化议案
- 酥油真正的
(默认)|假的
并行化议案
- 将指定为此表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 如果可能的话,代码生成器使用OpenMP库生成并行运行的循环迭代。 |
假的 |
代码生成器对待 |
看议案
.
使用OpenMP库与即时(JIT)编译不兼容。如果启用
和EnableOpenMP
是真正的
,代码生成器使用JIT编译和处理议案
-循环作为对于
-循环。
EnableRuntimerEvursion.
-运行时支持递归金宝app真正的
(默认)|假的
运行时递归支持,指定为该表中的值之一。金宝app
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 在生成的代码中允许使用递归函数。 |
假的 |
生成的代码中不允许使用递归函数。 |
一些编码标准,如MISRA®,不允许递归。增加生成符合MISRA C的代码的可能性®, 放EnableRuntimerEvursion.
来假的
.
如果您的MATLAB代码需要运行时递归和EnableRuntimerEvursion.
是假的
,代码生成失败。
EnableVariableSizing
-适应可变数组支持金宝app真正的
(默认)|假的
可变大小的数组支持,指定为此表中的值之一金宝app。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 允许使用可变大小的数组生成代码。 |
假的 |
代码生成不允许变量大小阵列。 |
附属国:
启用动态内存分配
.
FilopartitionMethod.
-文件分区模式“MapMFileToCFile”
(默认)|“SingleFile”
指定为该表中的值之一的文件分区模式。
价值 | 描述 |
---|---|
“MapMFileToCFile” |
此值为默认值。 代码生成器为每个MATLAB语言文件生成单独的C/ c++文件。 |
“SingleFile” |
代码生成器为C / C ++函数生成一个文件,该函数映射到MATLAB入学点函数。代码生成器为实用程序功能生成单独的C / C ++文件。 |
GencodeOnly.
-仅生成源代码假的
(默认)|真正的
仅生成源代码,指定为此表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器生成C/ c++源代码并构建目标代码。 |
真正的 |
代码生成器生成C / C ++源代码,但不会调用Make命令或构建对象代码。当您迭代修改MATLAB代码并生成C / C ++代码时,仅生成代码可以节省时间。 |
发电建议
-在生成的代码中的评论真正的
(默认)|假的
生成代码中的注释,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器在生成的代码中放置注释。 |
假的 |
代码生成器不会在生成的代码中放置注释。 |
GenerateExampleMain
-示例C / C ++主要文件生成“GenerateCodeOnly”
(默认)|“不生成”
|'generatecodeandcompile'
例C/ c++主文件生成,指定为表中值之一。
价值 | 描述 |
---|---|
“GenerateCodeOnly” |
此值为默认值。 代码生成器生成示例C / C ++主函数,但不编译它。 |
“不生成” |
代码生成器不会生成一个示例C/ c++主函数。 |
'generatecodeandcompile' |
代码生成器生成示例C / C ++ MAIN函数,并将其编译为创建测试可执行文件。此可执行文件不会返回输出。 如果是 |
main函数示例是一个模板,用于帮助您编写C/ c++ main函数,调用生成的C/ c++代码。看使用示例主函数合并生成的代码.
GenerateMakefile
-makefile生成真正的
(默认)|假的
构建过程中的makefile生成,指定为此表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器在构建过程中生成一个makefile。 |
假的 |
代码生成器在构建过程中不会生成生成文件。在post-code-generation命令中指定用于post-code-generation处理的指令,包括编译和链接。看构建过程定制. |
generatenonfinitefilesifused.
-仅当使用非有限数据金宝app时,才为非有限数据生成支持文件真正的
(默认)|假的
为非有限数据生成支持文件,指金宝app定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器为非有限数据生成支持文件(金宝app |
假的 |
代码生成器总是为非有限数据生成支持文件(金宝app |
附属国:
环境金宝appspreessnonfinite.
来真正的
支持这个参数。
发电机报告
-代码生成报告假的
(默认)|真正的代码生成报告,指定为该表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器仅在出现错误或警告消息或设置 |
真正的 |
代码生成器产生代码生成报告。 |
硬件
-指定硬件板的对象编码器。硬件
目的指定硬件板的对象。创建编码器。硬件
对象,使用coder.hardware
. 例如:
cfg=coder.config('lib');hw=编码器硬件(“树莓Pi”);硬件=硬件;
在使用之前coder.hardware
,必须安装硬件的支持包。金宝app
依赖关系:
环境硬件
定制特定硬件单板的硬件实现对象和其他配置参数。
如果DeeplearningConfig
设置为编码器。一种RMNEONConfig
对象和硬件
那么是空的吗codegen
设置GencodeOnly.
财产真正的
.
注意:
假设您创建了一个编码器。CodeConfig
目的CFG.
在Matlab会话中并在另一个Matlab会话中使用它。如果第二次会话的MATLAB主机没有指定的硬件板cfg。硬件
属性时,此参数将恢复为其默认值。默认值为[]
.
硬件实现
-硬件实现对象编码器.Hardwareimplementation.
对象。硬件实现对象,为C/ c++代码生成指定特定于硬件的配置参数。coder.config
创建一个编码器。CodeConfig
对象与之硬件实现
属性设置为编码器.Hardwareimplementation.
对象,该对象具有MATLAB主机的默认参数值。
头型
-生成代码中的预处理器指令风格'umermcludeguard'
(默认)|“UsePragmaOnce”
为了防止由于多个包含头文件而导致的编译错误,代码生成器也会产生#如果未定义
或#pragma一次
在生成的头文件中的构造。如果项目使用使用相同预处理器宏的不同文件,则使用#pragma一次
构造。的编译行为#pragma一次
不是标准化的。
指定头型
作为表中的值之一。
价值 | 描述 |
---|---|
UseIncludeGuard |
代码生成器生成 |
使用Praagmaonce. |
代码生成器生成#pragma一次 风格#包括 警卫。 |
强光潜势
-潜在的行主布局问题真正的
(默认)|假的
显示潜在的行主要布局效率问题,指定为此表中的值之一。
价值 | 描述 |
---|---|
真正的 |
代码生成报告显示了由于行主布局造成的潜在效率问题。(此值为默认值。) |
假的 |
代码生成报告不会显示与数组布局相关的问题。 |
initfltsanddblstozero.
-用memset对浮点数和双零赋值真正的
(默认)|假的
赋值float和double zeromemset
,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 如果可能,代码生成器使用 |
假的 |
代码生成器不使用 |
内联卫生在线
-MathWorks函数之间的控件内联'速度'
(默认)|“总是”
|“可读性”
|'绝不'
在MathWorks调用另一个MathWorks函数(指定为该表中的值之一)的所有调用站点上的内联行为。
价值 | 描述 |
---|---|
'速度' |
此值为默认值。 使用内部启发式istics来确定是否在呼叫站点上进行内联。此设置通常会导致高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能保持代码的模块化,而不牺牲太多的速度。结果是高可读性的代码。 |
'绝不' |
永远不会引入函数调用。导致最大可读性。此设置可能会显着降低生成的代码的性能。 |
即使你选择了“总是”
或者是'绝不'
在某些情况下,选择的选项,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,coder.inline(总是)
或coder.inline('never')
置于函数体内的指令将重写此选项。有关更多信息,请参见不同内联控件之间的交互.
InlineBetweenUserAndMathWorksFunctions
-控制用户编写函数和MathWorks函数之间的内联'速度'
(默认)|“总是”
|“可读性”
|'绝不'
在您编写的函数调用MathWorks函数或MathWorks函数调用您编写的函数的所有调用站点上的内联行为。指定为该表中的值之一。
价值 | 描述 |
---|---|
'速度' |
此值为默认值。 使用内部启发式istics来确定是否在呼叫站点上进行内联。此设置通常会导致高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能保持代码的模块化,而不牺牲太多的速度。结果是高可读性的代码。 |
'绝不' |
永远不会引入函数调用。导致最大可读性。此设置可能会显着降低生成的代码的性能。 |
即使你选择了“总是”
或者是'绝不'
在某些情况下,选择的选项,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,coder.inline(总是)
或coder.inline('never')
置于函数体内的指令将重写此选项。有关更多信息,请参见不同内联控件之间的交互.
内联卫生休眠
-用户编写的函数之间的控件内联'速度'
(默认)|“总是”
|“可读性”
|'绝不'
在所有呼叫网站上的内联行为,您写的函数调用您写入的另一个函数,指定为此表中的值之一。
价值 | 描述 |
---|---|
'速度' |
此值为默认值。 使用内部启发式istics来确定是否在呼叫站点上进行内联。此设置通常会导致高度优化的代码。 |
“总是” |
始终在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非调用非常小的函数。尽可能保持代码的模块化,而不牺牲太多的速度。结果是高可读性的代码。 |
'绝不' |
永远不会引入函数调用。导致最大可读性。此设置可能会显着降低生成的代码的性能。 |
即使你选择了“总是”
或者是'绝不'
在某些情况下,选择的选项,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,coder.inline(总是)
或coder.inline('never')
置于函数体内的指令将重写此选项。有关更多信息,请参见不同内联控件之间的交互.
LaunchReport
-自动打开代码生成报告假的
(默认)|真正的自动打开代码生成报告,指定为此表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 如果出现错误或警告,或者 |
真正的 |
代码生成器生成并打开代码生成报告。 |
LoopUnrollThreshold
-确定是否自动展开的迭代次数的阈值对于
循环迭代次数少于此阈值的循环可以由代码生成器自动展开。这个阈值适用于所有人对于
-循环在MATLAB代码中。对一个人对于
-loop,Acoder.unroll
在循环优先于循环展开优化之前立即放置的指令。阈值也可以适用于一些对于
在代码生成期间生成的循环。
看unr.
MATLABSourceComments
-包含MATLAB源代码作为注释生成的代码假的
(默认)|真正的
将MATLAB源代码作为注释包含在生成的代码中,指定为表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器不会在生成的代码中插入MATLAB源代码作为注释。代码生成器在函数横幅中不包含MATLAB函数签名。 |
真正的 |
代码生成器将MATLAB源代码作为注释插入生成的代码中。可跟踪性标记紧跟在每一行源代码的前面。跟踪标签帮助您定位相应的MATLAB源代码。看跟踪生成的C/ c++代码到MATLAB源代码. 如果您有嵌入式编码器,则在代码生成报告中,可跟踪标记链接到源代码。 代码生成器还包括功能横幅中的MATLAB函数签名。 |
附属国:
发电建议
支持这个参数。
maxidlength.
-生成标识符中的最大字符数31
|1024.
|正整数生成标识符的最大字符数,指定为范围[31,2048]的正整数。此属性适用于生成的函数、类型定义和变量名。为了避免被目标C/ c++编译器截断标识符,指定一个与目标C/ c++编译器的最大标识符长度匹配的值。
此属性不适用于导出的标识符,例如生成的入门点函数或emxArray API函数。如果导出标识符的长度超过目标C编译器的最大标识符长度,则目标C / C ++编译器截断导出的标识符。
默认值:
如果TargetLang
被设定为“C”
的默认值maxidlength.
是31
.
如果TargetLang
被设定为“c++”
的默认值maxidlength.
是1024.
.
MultiInstanceCode
-多实例,可重入代码假的
(默认)|真正的
多实例可重入代码,指定为此表中的一个值。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器不会生成多实例的重码代码。 |
真正的 |
代码生成器会产生可重复使用的可重用,多实例代码。 |
看重码代码.GPU编码器™产品不支持此选项。金宝app
的名字
-对象名“CodeConfig”
(默认)|特征向量对象名称,指定为字符向量。
输出类型
-从生成的C/ c++代码构建的输出“自由”
|“DLL”
|'可执行程序'
从生成的C/ c++代码构建的输出,指定为该表中的值之一。
价值 | 描述 |
---|---|
“自由” |
静态库 |
“DLL” |
动态链接库 |
'可执行程序' |
可执行程序 |
PassStructByReference
-引用传递结构真正的
(默认)|假的
通过参考入口点函数传递结构,指定为此表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 生成的代码通过引用传递结构,这通过最小化入口点函数边界处的参数份数来减少内存使用和执行时间。 笔记 写入结构参数字段的入口点函数覆盖输入值。 |
假的 |
生成的代码通过价值传递结构。 |
此参数仅适用于入口点函数。
GPU编码器始终设置PassStructByReference
属性为true。
Postcodegencommand.
-用于自定义生成处理的命令''
(默认)|特征向量命令自定义MEX函数生成后的构建处理codegen
,指定为字符向量。
看构建过程定制.
PreserveArrayDimensions
-n维索引假的
(默认)|真正的
蜜饯
-要在生成的代码中保留的变量名“没有”
(默认)|'usernames'
|“所有”
要保留在生成的代码中的变量名,指定为该表中的值之一。
价值 | 描述 |
---|---|
“没有” |
此值为默认值。 代码生成器不必保留任何变量名称。它可以重用满足可变重用要求的任何变量。 如果您的代码使用大型结构或数组,则设置 |
'usernames' |
代码生成器保留与您在MATLAB代码中定义的变量对应的名称。它不会将变量名替换为另一个名称,也不会将您的名称用于另一个变量。为了提高可读性,设置 环境 |
“所有” |
保留所有变量名。此参数值禁用变量重用。它仅用于测试或调试,不用于生产代码。 |
ReportInfoVarName
-包含代码生成报告信息的变量的名称''
(默认)|特征向量导出有关代码生成信息的变量的名称,指定为字符向量。代码生成器在Base Matlab工作区中创建此变量。此变量包含有关代码生成设置,输入文件,生成文件和代码生成消息的信息。
eportPotientialDifferences.
-潜在的差异报告真正的
(默认)|假的
电位差报告,指定为表中值之一:
价值 | 描述 |
---|---|
真正的 |
代码生成器报告生成的代码和MATLAB代码之间的潜在行为差异。潜在的差异列在代码生成报告的一个选项卡上。电位差是在运行时仅在某些条件下发生的差值。 |
假的 |
代码生成器不会报告潜在的差异。 |
看潜在的差异报告.
reasurednameArray.
-代码生成器不得用于函数或变量的名称''
(默认)|字符串数组|字符向量的单元格数组|特征向量代码生成器不得用于函数或变量的名称列表,指定为字符串数组,字符向量或字符向量的单元格数组。
多个保留名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中字符向量的单元格数组 |
字符向量 | 中以分号分隔的保留名称列表 笔记 使用字符向量指定代码配置对象中的多个条目将在将来的版本中删除。使用字符串阵列和字符阵列,而不是字符向量。有关更多信息,请参见兼容性的考虑. |
RowMajor
-行主要数组布局假的
(默认)|真正的
RunInitializeFcn
-自动运行初始化功能在生成的入口点函数的开始处生成对初始化函数的调用,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 在生成的入口点函数的开头包含对初始化函数的调用。生成的代码包括检查,以确保初始化函数只被调用一次,即使有多个入口点函数。 |
假的 |
生成的入口点函数不包括对初始化函数的调用。 |
附属国:
环境MultiInstanceCode
来真正的
禁用此参数。
RuntimeChecks
-在生成的代码中检测和报告运行时错误假的
(默认)|真正的
运行时错误检测和生成代码中的报告指定为此表中的值之一。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 生成的代码不会检查错误,例如界限数组索引。 |
真正的 |
生成的代码检查错误,例如界限数组索引。 错误报告软件使用 错误信息是英文的。 |
SaturateOnIntegerOverflow
-整数溢出的支持金宝app真正的
(默认)|假的
整数溢出支持,指定为该表中的一个值金宝app。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 代码生成器生成处理整数溢出的代码。溢出会饱和到数据类型所能表示的最小值或最大值。 |
假的 |
代码生成器不生成处理整数溢出的代码。不要设定 |
此参数仅适用于MATLAB内置整数类型。它不适用于双打,单打或固定点数据类型。
stackusagemax.
-每个应用程序的最大堆栈使用200000
(默认)|正整数每个应用程序的最大堆栈使用量,以字节为单位,指定为正整数。设置一个小于可用堆栈大小的限制。否则,可能会发生运行时堆栈溢出。C编译器检测并报告堆栈溢出。
金宝appspreessnonfinite.
-金宝app支持非有限值真正的
(默认)|假的
金宝app支持非限定值,指定为此表中的一个值。
价值 | 描述 |
---|---|
真正的 |
此值为默认值。 如果 如果 |
假的 |
代码生成器不生成支持非有限值的代码。金宝app |
TargetLang
-在生成的代码中使用的语言“C”
(默认)|“c++”
用于生成代码的语言,指定为“C”
或“c++”
. 如果指定C++,代码生成器将C代码封装到.CPP文件中,以便使用C++编译器和与外部C++应用程序的接口。它不生成C++类。
依赖:如果DeeplearningConfig
是集,codegen
套TargetLang
来c++
.
TargetLangStandard
-用于生成代码的语言标准“汽车”
(默认)|“C89 /人私下偷偷收藏盒式(ANSI)”
|“C99 (ISO)”
|“c++ 03 (ISO)”
|'C ++ 11(ISO)'
这“汽车”
选项使用TargetLang
设置为选择为生成的代码使用的语言标准。默认语言标准取决于您选择的语言。对于C语言,默认库是“C99 (ISO)”
.对于C ++,默认库是'C ++ 11(ISO)'
.
用于生成代码的语言标准,指定为以下字符向量之一:
“C89 /人私下偷偷收藏盒式(ANSI)”
“C99 (ISO)”
“c++ 03 (ISO)”
'C ++ 11(ISO)'
代码生成器使用标准库进行对数学和其他操作的调用。
看改变标准数学库.
工具链
-用于构建C/ c++库或可执行程序的工具链'自动找到安装的工具链'
(默认)|特征向量工具链用于构建C / C ++库或可执行程序,指定为字符向量。可用的工具链列表取决于主机平台,并且可以包括您添加的自定义工具链。如果未指定工具链,则代码生成器定位已安装的工具链。
注意:
假设您创建了一个编码器。CodeConfig
目的CFG.
在MATLAB会话中,并在另一个MATLAB会话中使用它。如果第二个会话的MATLAB主机没有在cfg。工具链
属性时,此参数将恢复为其默认值。默认值为'自动找到安装的工具链'
.
详细的
-代码生成进度显示(待删除)真正的
代码生成进度显示,指定为此表中的一个值。
价值 | 描述 |
---|---|
假的 |
此值为默认值。 代码生成器不显示代码生成进度。 |
真正的 |
代码生成器显示代码生成进度,包括代码生成阶段和编译器输出。 |
冗长
-代码生成进度显示'信息'
(默认)|“沉默”
|“详细”
是否在MATLAB命令行显示代码生成进度的状态,指定为该表中的值之一。
价值 | 描述 |
---|---|
“沉默” |
如果代码生成成功而没有警告,所有消息都会被抑制,包括生成报告时。 显示警告和错误信息。 |
'信息' |
此值为默认值。 相比
|
“详细” |
除了显示的消息 |
编写一个MATLAB函数,从中可以生成代码。下面的例子使用了这个函数myadd
返回其输入的总和。
函数C = MyAdd(A,B)C = A + B;结束
创建用于生成独立C/C++代码(静态库、动态链接库或可执行程序)的配置对象。例如,创建用于生成静态库的配置对象。
cfg=coder.config('lib');
更改不希望使用默认值的属性值。例如,在生成的C/ c++代码中启用运行时错误检测和报告。
cfg。RuntimeChecks = true;
通过使用生成代码codegen
.将配置对象传递给codegen
通过使用配置
选项。指定输入参数是标量级的。
codegenmyadd配置CFG.- args.{1}报告
要使用构建类型的默认配置参数“自由”
那“DLL”
,或'可执行程序'
, 使用codegen
选项配置:自由
那-配置:dll
,或-config:exe.
, 分别。然后,您不必创建并传递配置对象codegen
.
未来版本中的行为改变
在未来的版本中,通过使用具有分隔符的字符向量或字符串标量在代码配置对象中指定多个文件名、路径或保留名称将被删除。请使用字符串数组和字符向量的单元格数组。例如,要包含多个文件夹名,可以使用字符串数组中的任意一个CustomInclude.
作为cfg。CustomInclude = ["C:\项目","C:\自定义文件"];
或字符向量的单元格数组cfg。CustomInclude = {'C:\项目','C:\自定义文件'};
以包含编译生成代码的路径。
详细的
要删除的属性未来版本中的行为改变
在未来的版本中详细的
财产将被删除。
要配置代码生成进度显示,请使用冗长
财产。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。