主要内容

配置生成设置

指定生成类型

构建类型

MATLAB®编码器™可以为以下输出类型生成代码:

  • 墨西哥人的功能

  • 独立的C/ c++代码

  • 独立的C/ c++代码,并将其编译为静态库

  • 独立的C/ c++代码,并将其编译为动态链接库

  • 独立的C/ c++代码,并将其编译为可执行文件

    请注意

    生成可执行文件时,必须提供一个C/ c++文件主要函数,如中所述为C/ c++可执行文件指定主函数

生成文件的位置

默认情况下,MATLAB编码器根据输出类型在输出文件夹中生成文件。有关更多信息,请参见生成的文件和位置

请注意

每一次MATLAB编码器为相同的代码或项目生成相同类型的输出,它将从以前的构建中删除文件。如果要保存生成版本中的文件,请在开始另一个生成版本之前将它们复制到其他位置。

属性指定生成类型MATLAB编码器应用程序

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 构建类型致下列之一。

    • 源代码

    • 墨西哥人

    • 静态库

    • 动态库

    • 可执行的

如果您选择源代码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++可执行文件。看到为C/ c++可执行文件指定主函数

独立的C/ c++代码,并将其编译为指定代码生成选项的可执行文件

CFG = code .config('exe');设置配置参数,例如:指定主文件cfg。CustomSource = 'main.c';cfg。CustomInclude = 'c:\myfiles'; codegen -config cfg foo

请注意

您必须指定主要函数,用于生成C/ c++可执行文件。看到为C/ c++可执行文件指定主函数

指定代码生成的语言

MATLAB编码器可以生成C或c++库和可执行文件。默认语言为C。您可以从项目设置对话框或命令行显式地指定语言。

属性指定语言MATLAB编码器应用程序

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 语言Cc++

    请注意

    如果你指定c++MATLAB编码器包装了C代码. cpp文件。你可以使用c++编译器和接口与外部c++应用程序。MATLAB编码器不生成c++类。

使用命令行界面指定语言

  1. 为目标语言选择合适的编译器。

  2. 创建用于代码生成的配置对象。例如,对于一个库:

    CFG = code .config('lib');

  3. 设置TargetLang财产“C”“c++”.例如:

    cfg。TargetLang = ' c++ ';

    请注意

    如果你指定c++MATLAB编码器包装了C代码. cpp文件。然后你可以使用ac++编译器和接口与外部c++应用程序。MATLAB编码器不生成c++类。

另请参阅

指定输出文件名

命令指定输出文件名MATLAB编码器应用程序

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 输出文件名字段,输入文件名。

请注意

文件名中不要有空格。

默认情况下,如果第一个入口点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选择。

指定输出文件位置

指定输出文件位置MATLAB编码器应用程序

输出文件位置不能包含:

  • 空格(在某些操作系统配置中,空格可能导致代码生成失败)。

  • 选项卡

  • \美元#*

  • 非7位ASCII字符,如日文字符。

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 构建类型源代码静态库动态库,或可执行的(取决于您的要求)。

  3. 点击更多的设置

  4. 单击路径选项卡。

    的默认设置建立文件夹字段是项目文件夹的子文件夹.默认情况下,MATLAB编码器在文件夹中生成文件project_folder/ codegen /目标/ fcn1

    • fcn1按字母顺序排列第一个入口点文件的名称。

    • 目标是:

      • 墨西哥人用于MEX功能

      • 自由用于静态C/ c++库

      • dll用于动态链接的C/ c++库

      • exe用于C/ c++可执行文件

  5. 要更改输出位置,您可以:

    • 建立文件夹当前MATLAB工作文件夹的子文件夹

      MATLAB编码器MATLAB_working_folder/ codegen /目标/ fcn1文件夹

    • 建立文件夹指定的文件夹.在构建文件夹名称字段,提供文件夹的路径。

选择命令行

使用codegen函数- d选择。

参数说明方法

如果你正在使用 使用 细节
MATLAB编码器应用程序 项目设置对话框。 指定构建配置参数MATLAB编码器应用程序
codegen在命令行中,并希望指定一些参数 配置对象 在命令行上使用配置对象指定生成配置参数
codegen在构建脚本中
codegen在命令行中,并希望指定许多参数 配置对象对话框 在命令行中使用对话框指定生成配置参数

指定生成配置参数

属性中指定生成配置参数MATLAB编码器“项目设置”对话框、命令行或配置对象对话框。

指定生成配置参数MATLAB编码器应用程序

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 构建类型源代码静态库动态库,或可执行的(取决于您的要求)。

  3. 点击更多的设置

    项目设置对话框提供了一组适用于所选输出类型的配置参数。代码生成对MEX函数使用的配置参数集与对其他构建类型使用的配置参数集不同。之间切换输出类型时墨西哥人的功能源代码静态库动态库,或可执行的,验证这些设置。

    某些配置参数与MEX和独立代码生成都相关。如果在输出类型为时启用这些参数中的任何一个墨西哥人的功能,并且你想对C/ c++代码生成使用相同的设置,你必须再次启用它C/ c++静态库c++动态库,C / c++可执行文件

  4. 请根据实际情况修改参数。单击,浏览各页签参数的详细信息帮助

    参数设置的更改立即发生。

在命令行上使用配置对象指定生成配置参数

配置对象类型。codegen函数使用配置对象自定义代码生成环境。可选的配置对象如下表所示。

配置对象 描述

编码器。CodeConfig

如果没有嵌入式编码器®许可证是可用的,或者您禁用使用嵌入式Coder许可证,为C/ c++库或可执行文件生成指定参数。

编码器。EmbeddedCodeConfig

如果有嵌入式编码器许可证,则指定C/ c++库或可执行文件生成的参数。

编码器。HardwareImplementation

指定目标硬件实现的参数。如果没有指定,codegen生成与MATLAB主机兼容的代码。

编码器。MexCodeConfig

指定生成MEX代码的参数。

使用配置对象。使用配置对象定制代码生成环境:

  1. 在MATLAB工作区中,定义配置对象变量,如中所述创建配置对象

    例如,为C静态库生成一个配置对象:

    CFG = code .config('lib');返回一个编码器。CodeConfigobject if no % Embedded Coder license available. % Otherwise, returns a coder.EmbeddedCodeConfig object.

  2. 根据需要修改配置对象的参数,使用以下方法之一:

  3. 调用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');

请注意

如果有嵌入式编码器许可证,则创建编码器。EmbeddedCodeConfig对象。

如果您使用并发许可证,要禁用嵌入式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');

请注意

需要嵌入式编码器许可证;否则创建编码器。CodeConfig对象。

硬件实现配置对象

编码器。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会话之间自动保存。使用以下方法之一保存您的设置:

将配置对象保存到mat文件中,然后在下一个会话中加载mat文件

编写一个创建配置对象并设置其属性的脚本。

在命令行中使用对话框指定生成配置参数

  1. 中所述的创建配置对象创建配置对象

    例如,创建一个编码器。MexCodeConfig生成MEX代码的配置对象:

    Mexcfg = code .config('mex');

  2. 使用以下方法之一打开属性对话框:

    • 在MATLAB工作区中,双击配置对象变量。

    • 在MATLAB提示符下,发出开放命令,将配置对象变量传递给它,如下例所示:

      打开mexcfg

  3. 在弹出的对话框中,根据需要修改配置参数,然后单击应用

  4. 调用codegen函数与配置选择。指定配置对象作为参数:

    Codegen -config mexfg foo

    配置选项指定要生成的输出类型。有关更多信息,请参见codegen

中不支持属性对话框金宝appMATLAB在线™