主要内容

配置构建设置

指定构建类型

构建类型

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

  • MEX功能

  • 独立C / C ++代码

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

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

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

    笔记

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

生成文件的位置

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

笔记

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

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

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

  2. 构建类型到以下一项之一。

    • 源代码

    • 墨西哥人

    • 静态库

    • 动态库

    • 可执行的

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

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

cfg = coder.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 = coder.config(“自由”);

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

    cfg.targetlang ='C ++';

    笔记

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

也可以看看

指定输出文件名

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

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

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

笔记

不要在文件名中放入空格。

默认情况下,如果第一个入口点MATLAB文件的名称是fcn1,输出文件名为:

  • fcn1对于C / C ++库和可执行文件。

  • fcn1_mex墨西哥人功能。

默认,MATLAB编码器在文件夹中生成文件project_folder/ codegen / target / fcn1

  • project_folder您当前的项目文件夹

  • 目标是:

    • 墨西哥人对墨西哥人的功能

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

    • DLL.用于动态C/ c++库

    • exeC / c++的可执行文件

选择命令行

使用codegen函数- o选项。

指定输出文件位置

使用使用的输出文件位置MATLAB编码器应用程序

输出文件位置不得包含:

  • 空格(空格可以导致某些操作系统配置中的代码生成故障)。

  • 选项卡

  • \$*

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

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

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

  3. 点击更多设置

  4. 单击path选项卡。

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

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

    • 目标是:

      • 墨西哥人对墨西哥人的功能

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

      • DLL.动态链接的C/ c++库

      • exeC / c++的可执行文件

  5. 要改变输出位置,你可以:

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

      MATLAB编码器生成文件matlab_working_folder./ codegen / target / fcn1文件夹

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

选择命令行

使用codegen函数- d选项。

参数规范方法

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

指定生成配置参数

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

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

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

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

  3. 点击更多设置

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

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

  4. 请根据实际情况修改参数。有关选项卡上参数的更多信息,请单击帮助

    立即对参数设置进行更改。

使用配置对象在命令行中指定构建配置参数

配置对象的类型。codegen函数使用配置对象为代码生成自定义您的环境。下表列出了可用的配置对象。

配置对象 描述

编码器。CodeConfig

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

编码器。EmbeddedCodeConfig

如果Embedded Coder许可可用,为C/ c++库或可执行程序生成指定参数。

编码器。HardwareImplementation

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

编码器。MexCodeConfig

指定MEX代码生成的参数。

使用配置对象。要使用配置对象为代码生成自定义环境:

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

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

    cfg = coder.config(“自由”);%返回一个编码器。CodeConfigobject if no % Embedded Coder license available. % Otherwise, returns a coder.EmbeddedCodeConfig object.

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

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

笔记

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

如果使用并发许可证,要禁用嵌入式编码器许可证,请使用以下命令之一:

cfg = coder.config('lib','ecoder',false)

cfg =编码器。配置(dll,‘是’,假)

cfg =编码器。配置(“exe”、“是”,假)

代码生成配置对象,用于生成独立C / C ++库或用于嵌入目标的可执行文件

编码器。EmbeddedCodeConfig
%生成一个静态库cfg = coder.config('lib');%生成一个动态库cfg = coder.config('dll');

笔记

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

硬件实现配置对象

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

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

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

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

创建配置对象后,可以通过配置参数对话框修改配置对象的属性。看到通过命令行工作流交互方式指定配置参数