编码器。CodeConfig
配置参数用于C/ c++代码生成MATLAB代码
描述
一个编码器。CodeConfig
对象包含的配置参数codegen
用于生成静态库、动态链接库或可执行程序。将对象传递给codegen
函数。配置
选择。
创建
创建一个编码器。CodeConfig
对象。coder.config
函数。
一旦创建了编码器。CodeConfig
对象,您可以在命令行以编程方式修改其属性,也可以使用“配置参数”对话框以交互方式修改。看到在命令行工作流中指定配置参数.
属性
BuildConfiguration
- - - - - -工具链的编译优化或调试设置
“快跑”
(默认)|“加快构建”
|“调试”
|“指定”
工具链的编译器优化或调试设置,指定为此表中的值之一。
价值 | 描述 |
---|---|
“加快构建” |
优化构建以缩短构建时间。 |
“快跑” |
优化构建,以更快地运行可执行程序。 |
“调试” |
为调试优化构建。 |
“指定” |
使 |
如果你设置工具链
属性设置为可用的CMake工具链定义之一时,该属性允许的值为“发布”
,“调试”
,“RelWithDebInfo”
,“MinSizeRel”
,“指定”
.看到配置CMake生成过程.
CacheDynamicArrayDataPointer
- - - - - -动态数组优化
真正的
(默认)|假
CodeFormattingTool
- - - - - -生成代码的格式化工具
“汽车”
(默认)|“Clang-format”
|“MathWorks”
生成代码的代码格式化选项,指定为表中的值之一。
价值 | 描述 |
---|---|
“Clang-format” |
代码生成器将生成的代码按照 |
“汽车” |
使用内部启发式来确定生成的代码是否由 来确定生成的代码是否被格式化 |
“MathWorks” |
使代码生成器恢复到MathWorks格式化工具。 |
CodeReplacementLibrary
- - - - - -生成代码的代码替换库
特征向量
生成代码的代码替换库,指定为该表中的值之一:
价值 | 描述 |
---|---|
“没有” |
该值为默认值。 不使用代码替换库。 |
命名代码替换库 | 生成对特定平台、编译器或标准代码替换库的调用。命名库的列表取决于:
|
兼容库依赖于以下参数:
TargetLang
TargetLangStandard
ProdHWDeviceType
在硬件实现配置对象中。
嵌入式Coder提供了更多的库以及创建和使用自定义代码替换库的能力。
MATLAB®编码器™的最小集合# include
所选代码替换库所需的头文件的语句。
在设置此参数之前,请验证编译器是否支持要使用的库。如果选择了编译器不支持的参数值,就会发生编译器错误。
请注意
MATLAB编码器软件不支持TLC回调。
CompileTimeRecursionLimit
- - - - - -编译时递归的函数专门化的最大数量
50(默认)|正整数
用于编译时递归的函数专门化的最大数目,指定为正整数。若要在MATLAB代码中禁止递归,请设置CompileTimeRecursionLimit
为0。默认编译时递归限制对于大多数需要这种递归的递归函数来说足够大。如果代码生成由于编译时递归限制而失败,而您想要编译时递归,请尝试增加该限制。或者,更改您的MATLAB代码,使代码生成器使用运行时递归。看到达到编译时递归限制.
ConstantFoldingTimeout
- - - - - -常量文件夹要执行的最大指令数
40000(默认)|正整数
常量文件夹执行的最大指令数。在某些情况下,代码生成需要特定的指令保持恒定。如果常量折叠在这些指令被常量折叠之前停止,代码生成将失败。在本例中,增加的值ConstantFoldingTimeout
.
CppGenerateEnumClass
- - - - - -为MATLAB枚举生成c++ 11枚举类
真正的
(默认)|假
是否生成包含枚举类或普通C枚举的c++ 11代码,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器在生成的c++ 11代码中为MATLAB枚举生成枚举类。看到枚举的代码生成. |
假 |
代码生成器为生成的c++ 11代码中的MATLAB枚举生成普通的C枚举。 |
依赖:
设置
TargetLang
来“c++”
支持这个参数。
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风格的结构。 |
当使用GPU Coder™时,代码生成器总是禁用此参数。
依赖:
设置
TargetLang
来“c++”
支持这个参数。
数据类型:逻辑
CustomBLASCallback
- - - - - -布拉斯特区callback类
' '(默认)|特征向量
BLAS库的回调类在为MATLAB代码中指定为字符向量的某些低级向量和矩阵操作生成的代码中调用。
如果为某些低级向量和矩阵函数指定BLAS回调类,则代码生成器通过使用到BLAS库的CBLAS C接口生成BLAS调用。回调类提供CBLAS头文件的名称、CBLAS数据类型的名称以及链接到BLAS库所需的信息。如果此参数为空,则代码生成器为矩阵函数生成代码,而不是BLAS调用。
CustomFFTCallback
- - - - - -用于FFTW库调用的回调类
' '(默认)|特征向量
在为MATLAB代码中的FFT函数生成的代码中调用FFTW库的回调类,指定为字符向量。
为了提高FFT函数的执行速度,代码生成器生成对您在回调类中指定的FFTW库的调用。如果此参数为空,则代码生成器使用自己的FFT函数算法,而不是调用FFTW库。
CustomHeaderCode
- - - - - -出现在生成的C/ c++头文件顶部的自定义代码
' '(默认)|特征向量
从MATLAB代码生成的每个C/ c++头文件的顶部附近出现的自定义代码,除了rtwtypes.h
而且rtwhalf.h
,指定为字符向量。
CustomInclude
- - - - - -包括要添加的文件夹,以包括编译生成代码的路径
' '(默认)|字符串数组|字符向量的单元格数组|特征向量
编译生成的代码时要添加到Include路径的Include文件夹。将包含文件夹列表指定为字符串数组、字符向量的单元格数组或字符向量。
多个文件夹名,指定为此表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中的字符向量的单元格数组 |
特征向量 | 分开包含文件夹由一个 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元格数组代替。有关更多信息,请参见兼容性的考虑. |
CustomInitializer
- - - - - -要包含在生成的初始化函数中的自定义代码
' '(默认)|特征向量
要包含在生成的初始化函数中的自定义代码,指定为字符向量。
CustomLAPACKCallback
- - - - - -LAPACK callback类
' '(默认)|特征向量
LAPACK库的回调类调用为MATLAB代码中的某些线性代数函数生成的代码,指定为字符向量。
如果指定LAPACK回调类,对于某些线性代数函数,代码生成器通过使用LAPACKE C接口生成LAPACK调用。回调类提供LAPACKE头文件的名称和链接到LAPACK库所需的信息。如果此参数为空,则代码生成器为线性代数函数生成代码,而不是LAPACK调用。
CustomLibrary
- - - - - -静态库文件链接到生成的代码
' '(默认)|字符串数组|字符向量的单元格数组|特征向量
静态库文件与生成的代码链接,指定为字符串数组、字符向量的单元格数组或字符向量。
多个静态库文件名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中的字符向量的单元格数组 |
特征向量 | 以分隔静态库文件名 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元格数组代替。有关更多信息,请参见兼容性的考虑. |
CustomSource
- - - - - -要编译并与生成的代码链接的源文件
' '(默认)|字符串数组|字符向量的单元格数组|特征向量
要编译并与生成的代码链接的源文件,指定为字符串数组、字符向量的单元格数组或字符向量。
构建过程首先在当前文件夹中搜索源文件,然后在指定的包含文件夹中搜索CustomInclude
.如果在搜索路径上的多个文件夹中出现同名的源文件,则构建过程可能使用与您指定的文件不同的文件。
假设你指定foo.cpp
作为源文件。如果foo.c
而且foo.cpp
都在搜索路径上,您不能确定构建过程是否使用foo.c
或foo.cpp
.
多个源文件名,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中的字符向量的单元格数组 |
特征向量 | 分隔源文件名 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元格数组代替。有关更多信息,请参见兼容性的考虑. |
CustomSourceCode
- - - - - -代码出现在生成的顶部附近.c
或. cpp
文件
' '(默认)|特征向量
指定出现在每个生成的顶部附近的代码.c
或. cpp
文件(除了rtwhalf.c
或rtwhalf.cpp
),在任何功能之外。将代码指定为字符向量。
不要指定C静态函数定义。
CustomTerminator
- - - - - -出现在生成的terminate函数中的代码
' '(默认)|特征向量
在生成的terminate函数中出现的代码,指定为字符向量。
CustomToolchainOptions
- - - - - -所选工具链中的工具的自定义设置
单元阵列
选定工具链中的工具的自定义设置,指定为单元格数组。
依赖关系:
的
工具链
属性确定单元格数组中出现哪些工具和选项。设置
BuildConfiguration
财产指定
使CustomToolchainOptions
.
首先,获取当前设置。例如:
cfg = coder.config (“自由”);cfg。BuildConfiguration =“指定”;选择= cfg。CustomToolchainOptions
然后,编辑中的值选择
.
这些值来源于工具链定义文件和第三方编译器选项。看到自定义工具链登记.
DataTypeReplacement
- - - - - -生成代码中的数据类型替换
“CBuiltIn”
|“CoderTypeDefs”
生成代码中的数据类型替换,指定为此表中的值之一。
价值 | 描述 |
---|---|
“CBuiltIn” |
该值为默认值。 代码生成器使用内置的C数据类型。 |
“CoderTypeDefs” |
的预定义数据类型rtwtypes.h |
DeepLearningConfig
- - - - - -深度学习代码生成的配置对象
编码器。MklDNNConfig
对象|编码器。一个RMNEONConfig
对象|编码器。CuDNNConfig
对象|编码器。TensorRTConfig
对象
用于深度学习网络代码生成的配置对象,指定为该表中的一个对象。
对象 | 需要 | 描述 |
---|---|---|
编码器。MklDNNConfig |
|
一个 cfg = coder.config (墨西哥人的);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“mkldnn”); |
编码器。一个RMNEONConfig |
|
一个 cfg = coder.config (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“arm-compute”); |
编码器。CuDNNConfig (GPU编码器) |
|
一个 cfg = coder.gpuConfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“cudnn”); 看到基于cuDNN的深度学习网络代码生成(GPU编码器). |
编码器。TensorRTConfig (GPU编码器) |
|
一个 cfg = coder.gpuConfig (“自由”);cfg。TargetLang =“c++”;cfg。DeepLearningConfig =编码器。DeepLearningConfig (“tensorrt”); 看到基于TensorRT的深度学习网络代码生成(GPU编码器). |
依赖:如果DeepLearningConfig
是集,codegen
集TargetLang
来c++
.
描述
- - - - - -对象描述
class CodeConfig: C代码生成配置。
(默认)|特征向量
对象说明,指定为字符向量。
DynamicMemoryAllocation
- - - - - -动态内存分配模式
“阈值”
(默认)|“AllVariableSizeArrays”
|“关闭”
动态内存分配模式,指定为该表中的一个值。
价值 | 描述 |
---|---|
“阈值” |
该值为默认值。 代码生成器在堆上为大小(以字节为单位)大于或等于的变大小数组动态分配内存 |
“AllVariableSizeArrays” |
代码生成器动态地为堆上的所有变大小数组分配内存。 |
“关闭” |
代码生成器静态地为堆栈上的可变大小数组分配内存。 |
无界可变大小数组需要动态内存分配。
依赖关系:
EnableVariableSizing
支持这个参数。设置这个
DynamicMemoryAllocation
来“阈值”
使DynamicMemoryAllocationThreshold
参数。
看到为可变大小数据生成代码.
DynamicMemoryAllocationInterface
- - - - - -在生成的函数接口上动态分配数组
“汽车”
(默认)|“C”
|“c++”
在生成的C/ c++函数的接口上动态分配数组的实现,指定为该表中的值之一。
价值 | 描述 |
---|---|
“汽车” |
这是默认值。如果你设置 |
“C” |
生成的代码使用C风格 |
“c++” |
如果你设置 否则,生成的代码将使用 |
当使用GPU Coder时,代码生成器总是使用C风格emxArray
数据结构。
依赖:
EnableVariableSizing
支持这个参数。
DynamicMemoryAllocationThreshold
- - - - - -可变大小数组动态内存分配的大小阈值
65536
(默认)|正整数
可变大小数组的动态内存分配的大小阈值,指定为正整数。对于大小(以字节为单位)大于或等于阈值的可变大小数组,代码生成器使用动态内存分配。
依赖:
设置
DynamicMemoryAllocation
来“阈值”
支持这个参数。
看到为可变大小数据生成代码.
EnableAutoExtrinsicCalls
- - - - - -自动外部函数调用
真正的
(默认)|假
自动外部函数调用,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器将一些常见的可视化函数视为外部函数。您不必将这些函数声明为外部函数 |
假 |
代码生成器不会将常见可视化函数视为外部函数,除非您使用coder.extrinsic . |
一些常见的可视化函数是情节
,disp
,数字
.看到使用MATLAB引擎在生成代码中执行函数调用.
EnableAutoParallelization
- - - - - -自动并行化为
循环
假
(默认)|真正的
自动并行化为
循环,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会自动并行化 |
真正的 |
代码生成器自动并行化 |
当使用GPU Coder时,代码生成器总是启用自动并行化为
循环。
数据类型:逻辑
EnableAutoParallelizationReporting
- - - - - -的自动并行化报告为
循环
真正的
(默认)|假
的自动并行化报告为
循环,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果你设置 |
假 |
代码生成器不会为的自动并行化生成代码生成报告为 循环。 |
EnableImplictExpansion
- - - - - -生成代码中的隐式扩展功能
真正的
(默认)|假
生成代码中的隐式扩展功能,指定为该表中列出的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器支持在生成的代码中进行隐式展开。代码生成器在生成的代码中包含用于应用隐式展开的修改。看到基本操作的兼容数组大小. |
假 |
生成的代码不遵循隐式展开的规则。 |
数据类型:逻辑
EnableMemcpy
- - - - - -memcpy
优化
真正的
(默认)|假
memcpy
优化,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能,代码生成器使用 |
假 |
代码生成器不使用 |
当使用GPU Coder时,代码生成器总是禁用的Memcpy
优化。
EnableOpenMP
- - - - - -并行化的parfor
循环
真正的
(默认)|假
并行化的parfor
-loops,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能,代码生成器使用OpenMP库生成并行运行的循环迭代。 |
假 |
代码生成器处理 |
看到parfor
.
OpenMP库的使用与即时(JIT)编译不兼容。如果EnableJIT
而且EnableOpenMP
是真正的
,代码生成器使用JIT编译和处理parfor
循环,为
循环。
当使用GPU Coder时,代码生成器总是处理parfor
循环,为
循环。
EnableRuntimeRecursion
- - - - - -运行时支持递归
真正的
(默认)|假
运行时递归支持,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 生成的代码中允许使用递归函数。 |
假 |
生成的代码中不允许递归函数。 |
一些编码标准,如MISRA®,不允许递归。增加生成符合MISRA C的代码的可能性®,设置EnableRuntimeRecursion
来假
.
如果你的MATLAB代码需要运行时递归和EnableRuntimeRecursion
是假
,代码生成失败。
看到递归函数的代码生成.
EnableVariableSizing
- - - - - -适应可变数组支持
真正的
(默认)|假
可变大小的数组支持,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成允许使用可变大小的数组。 |
假 |
代码生成不允许使用可变大小的数组。 |
依赖:
使
动态内存分配
.
看到变大小数组的代码生成.
FilePartitionMethod
- - - - - -文件分区模式
“MapMFileToCFile”
(默认)|“SingleFile”
指定为该表中的值之一的文件分区模式。
价值 | 描述 |
---|---|
“MapMFileToCFile” |
该值为默认值。 代码生成器为每个MATLAB语言文件生成单独的C/ c++文件。 |
“SingleFile” |
代码生成器为映射到MATLAB入口点函数的C/ c++函数生成单个文件。代码生成器为实用程序函数生成单独的C/ c++文件。 |
GenCodeOnly
- - - - - -只生成源代码
假
(默认)|真正的
仅生成源代码,指定为此表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器生成C/ c++源代码并构建目标代码。 |
真正的 |
代码生成器生成C/ c++源代码,但不调用make命令或构建目标代码。当您在修改MATLAB代码和生成C/ c++代码之间迭代时,只生成代码可以节省时间。 |
GenerateComments
- - - - - -生成代码中的注释
真正的
(默认)|假
注释,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器在生成的代码中放置注释。 |
假 |
代码生成器不会在生成的代码中放置注释。 |
GenerateExampleMain
- - - - - -C/ c++主文件生成示例
“GenerateCodeOnly”
(默认)|“DoNotGenerate”
|“GenerateCodeAndCompile”
示例C/ c++主文件生成,指定为该表中的一个值。
价值 | 描述 |
---|---|
“GenerateCodeOnly” |
该值为默认值。 代码生成器生成一个示例C/ c++主函数,但不编译它。 |
“DoNotGenerate” |
代码生成器不会生成示例C/ c++主函数。 |
“GenerateCodeAndCompile” |
代码生成器生成一个示例C/ c++主函数并编译它以创建一个测试可执行文件。此可执行文件不返回输出。 如果 |
一个主函数示例是一个模板,它可以帮助您编写调用生成的C/ c++代码的C/ c++主函数。看到使用主函数示例合并生成的代码.
GenerateMakefile
- - - - - -Makefile代
真正的
(默认)|假
在构建过程中生成Makefile,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器在构建过程中生成一个makefile。 |
假 |
代码生成器在构建过程中不生成makefile。在后代码生成命令中指定后代码生成处理的指令,包括编译和链接。看到构建流程定制. |
GenerateNonFiniteFilesIfUsed
- - - - - -仅当使用非有限数据时,才为非有限数据生成支持文件
真正的
(默认)|假
为非有限数据生成支持文件,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器为非有限数据生成支持文件( |
假 |
代码生成器总是为非有限数据生成支持文件( |
依赖:
设置
SupportNonFinite
来真正的
支持这个参数。
GenerateReport
- - - - - -代码生成报告
假
(默认)|真正的
代码生成报告,指定为此表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 只有在发生错误或警告消息时,或者您设置了 |
真正的 |
代码生成器生成代码生成报告。 |
硬件
- - - - - -对象,该对象指定硬件板
编码器。硬件
对象
对象,该对象指定硬件板。创建编码器。硬件
对象,使用coder.hardware
.例如:
cfg = coder.config(“自由”);hw =编码器。硬件(覆盆子π);cfg。硬件= hw;
使用之前coder.hardware
,则必须安装硬件支持包。
依赖关系:
设置
硬件
为特定硬件板自定义硬件实现对象和其他配置参数。如果
DeepLearningConfig
设置为编码器。一个RMNEONConfig
对象和硬件
是空的,然后codegen
设置GenCodeOnly
财产真正的
.
注意:
假设你创建了一个
编码器。CodeConfig
对象cfg
并在另一个MATLAB会话中使用它。如果用于第二会话的MATLAB主机没有指定的硬件板cfg。硬件
属性安装在其上时,此参数将恢复为其默认值。默认值为[]
.设置硬件板选项MATLAB主机
在应用中相当于使用cfg。硬件
而且cfg.HardwareImplementation.ProdHWDeviceType
使用它们的默认值。
HardwareImplementation
- - - - - -硬件实现对象
编码器。HardwareImplementation
对象。
硬件实现对象,为C/ c++代码生成指定特定于硬件的配置参数。coder.config
创建一个编码器。CodeConfig
对象的HardwareImplementation
属性设置为编码器。HardwareImplementation
对象,具有MATLAB主机的默认参数值。
HeaderGuardStyle
- - - - - -生成代码中的预处理器指令样式
“UseIncludeGuard”
(默认)|“UsePragmaOnce”
为了防止由于包含多个头文件而导致的编译错误,代码生成器可以生成任意一个#如果未定义
或# pragma一旦
在生成的头文件中构造。如果项目使用使用相同预处理器宏的不同文件,则使用# pragma一旦
构造。的编译行为# pragma一旦
不是标准化的。
指定HeaderGuardStyle
作为该表中的一个值。
价值 | 描述 |
---|---|
UseIncludeGuard |
代码生成器产生 |
UsePragmaOnce |
代码生成器产生# pragma一旦 风格# include 警卫。 |
HighlightPotentialRowMajorIssues
- - - - - -潜在的行主要布局问题
真正的
(默认)|假
显示潜在的行主要布局效率问题,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
代码生成报告显示了由于行主布局导致的潜在效率问题。(此值为默认值。) |
假 |
代码生成报告不显示与数组布局相关的问题。 |
看到行-主阵列布局的代码设计.
InitFltsAndDblsToZero
- - - - - -用memset赋值浮点数和双零
真正的
(默认)|假
浮点和双零的赋值memset
,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果可能,代码生成器使用 |
假 |
代码生成器不使用 |
InlineBetweenMathWorksFunctions
- - - - - -MathWorks函数之间的控件内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在MathWorks调用另一个MathWorks函数的所有调用站点中的内联行为,该函数指定为该表中的一个值。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式来确定是否在调用站点执行内联。这种设置通常会导致高度优化的代码。 |
“总是” |
总是在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非是对非常小的函数的调用。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高可读性的代码。 |
“永远” |
永远不要内联函数调用。结果是最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择“总是”
或者是“永远”
选项,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
放在函数体中的指令会覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
InlineBetweenUserAndMathWorksFunctions
- - - - - -控制用户编写的函数和MathWorks函数之间的内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在您编写的函数调用MathWorks函数或MathWorks函数调用您编写的函数的所有调用站点的内联行为。指定为该表中的一个值。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式来确定是否在调用站点执行内联。这种设置通常会导致高度优化的代码。 |
“总是” |
总是在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非是对非常小的函数的调用。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高可读性的代码。 |
“永远” |
永远不要内联函数调用。结果是最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择“总是”
或者是“永远”
选项,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
放在函数体中的指令会覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
InlineBetweenUserFunctions
- - - - - -控制用户写入函数之间的内联
“速度”
(默认)|“总是”
|“可读性”
|“永远”
在编写的函数调用另一个函数的所有调用站点上的内联行为,该函数指定为该表中的值之一。
价值 | 描述 |
---|---|
“速度” |
该值为默认值。 使用内部启发式来确定是否在调用站点执行内联。这种设置通常会导致高度优化的代码。 |
“总是” |
总是在调用站点执行内联。 |
“可读性” |
几乎从不内联函数调用,除非是对非常小的函数的调用。尽可能在不牺牲太多速度的情况下保持代码的模块化。产生高可读性的代码。 |
“永远” |
永远不要内联函数调用。结果是最大的可读性。此设置可能会显著降低生成代码的性能。 |
即使你选择“总是”
或者是“永远”
选项,在某些情况下,代码生成器可能不会严格遵循该指令。例如,如果存在冲突,则coder.inline(总是)
或coder.inline(“不”)
放在函数体中的指令会覆盖此选项。有关更多信息,请参见不同内联控件之间的交互.
InstructionSetExtensions
- - - - - -用于目标硬件的SIMD指令集
“没有”
(默认)|上交所的
|“SSE2”
|“SSE4.1”
|“AVX”
|“AVX2”
|菲利普-马萨的
|“AVX512F”
指令集为目标硬件生成单指令、多数据(SIMD)代码。该列表显示了指令集的依赖性,其中每个指令集都依赖于它前面的指令集。代码生成器加载所选的指令集和它所依赖的指令集。例如,如果您选择AVX
,加载代码生成器AVX
,SSE4.1
,SSE2
,上交所
.
当使用GPU Coder时,代码生成器总是禁用的InstructionSetExtensions
.
LaunchReport
- - - - - -自动打开代码生成报告
假
(默认)|真正的
自动打开代码生成报告,指定为此表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 如果出现错误或警告,或者如果 |
真正的 |
代码生成器生成并打开一个代码生成报告。 |
LoopUnrollThreshold
- - - - - -决定是否自动展开的迭代次数的阈值为
循环或parfor
循环
5(默认)|正整数
迭代次数少于此阈值的循环可以由代码生成器自动展开。这个阈值适用于所有人为
循环和parfor
-循环在你的MATLAB代码。对一个人为
循环,coder.unroll
直接放在循环之前的指令优先于循环展开优化。这个阈值也适用于一些国家为
-在代码生成期间产生的循环。
MATLABSourceComments
- - - - - -在生成的代码中包含MATLAB源代码作为注释
假
(默认)|真正的
将MATLAB源代码作为注释包含在生成的代码中,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会在生成的代码中插入MATLAB源代码作为注释。代码生成器在函数栏中不包含MATLAB函数签名。 |
真正的 |
代码生成器在生成的代码中插入MATLAB源代码作为注释。在源代码的每一行之前都有一个跟踪标记。可追溯标记帮助您定位相应的MATLAB源代码。看到跟踪生成的C/ c++代码到MATLAB源代码. 如果您有Embedded Coder,在代码生成报告中,可跟踪性标记链接到源代码。 代码生成器还在函数栏中包含MATLAB函数签名。 |
依赖:
设置
GenerateComments
来真正的
支持这个参数。
MATLABSourceCommentLineNumbers
- - - - - -在生成的代码中包含MATLAB源代码的行号作为注释
真正的
(默认)|假
是否在生成的代码中包含MATLAB源代码的行号作为注释,指定为真正的
或假
.
依赖:
MATLABSourceComments
支持这个参数。
MaxIdLength
- - - - - -生成的标识符的最大字符数
31
|1024
|正整数
生成的标识符的最大字符数,指定为范围[31,2048]的正整数。此属性应用于生成的函数、类型定义和变量名。要避免被目标C/ c++编译器截断标识符,请指定与目标C/ c++编译器的最大标识符长度相匹配的值。
此属性不适用于导出的标识符,例如为入口点函数或emxArray API函数生成的名称。如果导出的标识符长度超过目标C编译器的最大标识符长度,目标C/ c++编译器将截断导出的标识符。
默认值:
如果
TargetLang
被设置为“C”
的默认值MaxIdLength
是31
.如果
TargetLang
被设置为“c++”
的默认值MaxIdLength
是1024
.
MultiInstanceCode
- - - - - -多实例,可重入代码
假
(默认)|真正的
多实例、可重入代码,指定为此表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会产生多实例、可重入的代码。 |
真正的 |
代码生成器生成可重用的、可重入的多实例代码。 |
看到可重入代码.
GPU Coder产品不支持此选项。
的名字
- - - - - -对象名称
“CodeConfig”
(默认)|特征向量
对象名称,指定为字符向量。
NumberOfCpuThreads
- - - - - -并行for循环运行的最大CPU线程数
0(默认)|正整数
并行运行的最大CPU线程数为
-循环在生成的C/ c++代码中,指定为正整数。
OptimizeReductions
- - - - - -生成简化操作的SIMD代码|并行化执行简化操作的for循环
“假”
(默认)|“真正的”
是否为积函数和函数等约简操作生成SIMD代码。要使用此参数,必须为类选择指令集InstructionSetExtensions
参数。代码生成器使用指定的指令集生成用于简化操作的SIMD代码。
并行化为
-执行缩减操作的循环,指定为该表中的一个值。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不会自动并行化 |
真正的 |
代码生成器自动并行化 |
看到并行化循环执行约简操作.
OutputType
- - - - - -从生成的C/ c++代码生成的输出
“自由”
|“DLL”
|EXE”
从生成的C/ c++代码生成的输出,指定为该表中的值之一。
价值 | 描述 |
---|---|
“自由” |
静态库 |
“DLL” |
动态链接库 |
EXE” |
可执行程序 |
PassStructByReference
- - - - - -通过引用传递结构
真正的
(默认)|假
通过引用入口点函数传递结构,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 生成的代码通过引用传递结构,通过最小化入口点函数边界处的参数副本数量,减少了内存使用和执行时间。 请注意 写入结构参数的字段时将覆盖输入值的入口点函数。 |
假 |
生成的代码按值传递结构。 |
此参数仅适用于入口点函数。
PostCodeGenCommand
- - - - - -命令自定义生成处理
”
(默认)|特征向量
命令自定义生成处理后的MEX功能生成codegen
,指定为字符向量。
看到构建流程定制.
PreserveArrayDimensions
- - - - - -n维索引
假
(默认)|真正的
PreserveVariableNames
- - - - - -要在生成的代码中保存的变量名
“没有”
(默认)|“用户名”
|“所有”
要在生成的代码中保留的变量名,指定为此表中的值之一。
价值 | 描述 |
---|---|
“没有” |
该值为默认值。 代码生成器不必保留任何变量名。它可以重用满足变量重用要求的任何变量。 如果您的代码使用大型结构或数组,设置 |
“用户名” |
代码生成器保留与您在MATLAB代码中定义的变量对应的名称。它不会用另一个名称替换您的变量名,也不会对另一个变量使用您的名称。为了提高可读性,设置 设置 |
“所有” |
保留所有变量名。此参数值禁止变量重用。它只用于测试或调试,而不是用于生产代码。 |
看到在生成的代码中保留变量名.
ReportInfoVarName
- - - - - -包含代码生成报告信息的变量的名称
”
(默认)|特征向量
将有关代码生成的信息导出到其中的变量的名称,指定为字符向量。代码生成器在基本的MATLAB工作区中创建这个变量。此变量包含关于代码生成设置、输入文件、生成文件和代码生成消息的信息。
ReportPotentialDifferences
- - - - - -潜在的差异报告
真正的
(默认)|假
潜在差值报告,指定为该表中的值之一:
价值 | 描述 |
---|---|
真正的 |
代码生成器报告生成的代码和MATLAB代码之间潜在的行为差异。潜在的差异列在代码生成报告的选项卡上。电位差是在运行时仅在某些条件下发生的差值。 |
假 |
代码生成器不报告潜在的差异。 |
看到潜在的差异报告.
ReservedNameArray
- - - - - -代码生成器不能用于函数或变量的名称
”
(默认)|字符串数组|字符向量的单元格数组|特征向量
代码生成器不能用于函数或变量的名称列表,指定为字符串数组、字符向量的单元格数组或字符向量。
多个保留名称,指定为该表中的一个值。
价值 | 描述 |
---|---|
字符串数组 | 中的字符串数组 |
字符向量的单元格数组 | 中的字符向量的单元格数组 |
特征向量 | 中保留名称的分号分隔的列表 请注意 通过使用字符向量在代码配置对象中指定多个条目将在未来的版本中删除。使用字符向量的字符串数组和单元格数组代替。有关更多信息,请参见兼容性的考虑. |
RowMajor
- - - - - -行存储阵列布局
假
(默认)|真正的
RunInitializeFcn
- - - - - -自动运行initialize函数
真正的(默认)|假
在生成的入口点函数的开始处生成对initialize函数的调用,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 在生成的入口点函数的开头包含对initialize函数的调用。生成的代码包括检查,以确保initialize函数只被调用一次,即使有多个入口点函数。 |
假 |
生成的入口点函数不包括对initialize函数的调用。 |
依赖:
设置
MultiInstanceCode
来真正的
禁用这个参数。
RuntimeChecks
- - - - - -在生成的代码中检测和报告运行时错误
假
(默认)|真正的
在生成的代码中进行运行时错误检测和报告,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 生成的代码不会检查超出边界的数组索引等错误。 |
真正的 |
生成的代码检查错误,例如超出范围的数组索引。 错误报告软件使用 错误消息是英文的。 |
SaturateOnIntegerOverflow
- - - - - -整数溢出的支持
真正的
(默认)|假
整数溢出支持,指定为该表中的一个值。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 代码生成器生成处理整数溢出的代码。溢出饱和到数据类型所能表示的最小值或最大值。 |
假 |
代码生成器不会产生处理整数溢出的代码。不设置 |
此参数仅适用于MATLAB内置整数类型。它不适用于双精度、单精度或定点数据类型。
StackUsageMax
- - - - - -每个应用程序的最大堆栈使用
200000
(默认)|正整数
每个应用程序的最大堆栈使用,以字节为单位,指定为正整数。设置一个低于可用堆栈大小的限制。否则,可能会发生运行时堆栈溢出。C编译器检测并报告堆栈溢出。
SupportNonFinite
- - - - - -对非有限值的支持
真正的
(默认)|假
对非有限值的支持,指定为该表中的值之一。
价值 | 描述 |
---|---|
真正的 |
该值为默认值。 如果 如果 |
假 |
代码生成器不生成支持非有限值的代码。 |
TargetLang
- - - - - -在生成的代码中使用的语言
“C”
(默认)|“c++”
要在生成代码中使用的语言,指定为“C”
或“c++”
.如果指定了c++,代码生成器将C代码封装到.cpp文件中,以便您可以使用c++编译器并与外部c++应用程序进行接口。它不生成c++类。
当使用GPU Coder时,代码生成集TargetLang
来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主机没有中指定的工具链cfg。工具链
属性安装在其上时,此参数将恢复为其默认值。默认值为“自动定位已安装的工具链”
.
详细的
- - - - - -代码生成进度显示(将被删除)
假(默认)|l真正的
代码生成进度显示,指定为该表中的值之一。
价值 | 描述 |
---|---|
假 |
该值为默认值。 代码生成器不显示代码生成进度。 |
真正的 |
代码生成器显示代码生成进度,包括代码生成阶段和编译器输出。 |
冗长
- - - - - -代码生成进度显示
“信息”
(默认)|“沉默”
|“详细”
是否在MATLAB命令行中显示代码生成进度的状态,指定为该表中的值之一。
价值 | 描述 |
---|---|
“沉默” |
如果代码生成成功而没有任何警告,则所有消息都将被抑制,包括生成报告时。 显示警告和错误信息。 |
“信息” |
该值为默认值。 相比
|
“详细” |
中显示的消息之外 |
例子
为生成独立代码指定配置参数
编写一个可以生成代码的MATLAB函数。下面的例子使用了这个函数myadd
它返回输入的和。
函数C = myadd(a,b) C = a + b;结束
为生成独立的C/ c++代码(静态库、动态链接库或可执行程序)创建配置对象。例如,为生成静态库创建一个配置对象。
cfg = coder.config (“自由”);
更改不希望使用默认值的属性的值。例如,在生成的C/ c++代码中启用运行时错误检测和报告。
cfg。RuntimeChecks = true;
通过使用codegen
.将配置对象传递给codegen
通过使用配置
选择。指定输入参数为双精度标量。
codegenmyadd配置cfgarg游戏{1}报告
选择功能
为构建类型使用默认配置参数“自由”
,“DLL”
,或EXE”
,可以使用codegen
选项配置:自由
,配置:dll
,或配置:exe
,分别。然后,您不必创建配置对象并将其传递给codegen
.
版本历史
介绍了R2011aR2021a:将删除使用字符向量在代码配置对象中指定多个条目的功能
在未来的版本中,通过使用具有分隔符的字符向量或字符串标量在代码配置对象中指定多个文件名、路径或保留名称的做法将被删除。使用字符串数组和字符向量的单元格数组代替。例如,要包含多个文件夹名,可以在中使用字符串数组CustomInclude
作为cfg。CustomInclude = ["C:\Project","C:\Custom Files"];
或字符向量的单元格数组cfg。CustomInclude = {'C:\Project','C:\Custom Files'};
以包含编译生成代码的路径。
R2021a:详细的
待拆物业
在未来的版本中详细的
财产将被移除。
要配置代码生成进度显示,请使用冗长
财产。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。