主要内容

转变Codegen.命令对等价物马铃薯草编码器项目

你可以使用Codegen.司法-项目转换a的选项Codegen.命令相当马铃薯草®编码器™项目文件。然后,您可以使用另一个使用项目文件生成代码Codegen.命令或者Matlab编码器应用程序。

例如,转换aCodegen.输入参数的命令input_arguments.到项目文件myproject.prj., 跑步:

Codegen.input_arguments.-项目myproject.prj.

输入参数到Codegen.包括:

  • 入学点函数的名称

  • 使用使用指定的输入类型定义- args.选项

  • 代码生成选项,包括配置对象中指定的参数

  • 自定义源文件的名称包含在生成的代码中

你也可以使用-项目转换不完整的选项Codegen.命令到项目文件。例如,要创建项目文件myprojecttemplate.prj.其中仅包含存储在配置对象中的代码生成参数CFG., 跑步:

Codegen.-Config.CFG.-项目myprojecttemplate.prj.
myprojecttemplate.prj.不包含入学点函数或输入类型的规范。因此,您无法从此项目文件生成代码。你可以打开myprojecttemplate.prj.在里面Matlab编码器应用程序并将其用作模板以创建可以使用的完整项目文件来生成代码。

笔记

运行Codegen.司法-项目选项不会生成代码。它只创建项目文件。

示例:转换完整Codegen.命令到项目文件

定义MATLAB功能,迈达德,返回两个值的总和。

功能Y = Myadd(U,V)%#codegen.y = u + v;结尾

创建一个Coder.codeConfig用于生成静态库的对象。放targetlang.'c ++'

cfg = coder.config('lib');cfg.targetlang ='c ++';

在matlab命令行,创建和运行aCodegen.命令。指定迈达德作为入口点函数。指定输入迈达德作为类型的可变大小矩阵双倍的谁的尺寸是无限的。指定CFG.作为代码配置对象。包括-项目转换的选项Codegen.命令相当Matlab编码器项目文件名称myadd_project.prj.

Codegen.-Config.CFG.迈达德-  args.{coder.typeof(1,[INF,INF]),Coder.typeof(1,[Inf,Inf])}-项目myadd_project.prj.
项目文件'myadd_project.prj'已成功创建。开放项目

代码生成器创建项目文件myadd_project.prj.在当前的工作文件夹中。跑步Codegen.与之-项目选项不会生成代码。它只创建项目文件。

生成代码myadd_project.prj.通过使用另一个Codegen.命令。

Codegen.myadd_project.prj.

代码生成器产生C ++静态库函数迈达德在里面工作\ codegen \ lib \ myadd文件夹,其中工作是您当前的工作目录。

示例:转换不完整Codegen.命令到模板项目文件

创建一个Coder.codeConfig用于生成静态库的对象。放targetlang.'c ++'

cfg = coder.config('lib');cfg.targetlang ='c ++';

在matlab命令行,创建和运行aCodegen.命令。指定CFG.作为代码配置对象。包括-项目转换的选项Codegen.命令相当Matlab编码器项目文件名称myprojecttemplate.prj.

Codegen.-Config.CFG.-项目myprojecttemplate.prj.
项目文件'myProjectTemplate.prj'已成功创建。开放项目

你现在可以打开myprojecttemplate.prj.在里面Matlab编码器应用程序并将其用作模板以创建可以使用的完整项目文件来生成代码。

限制

当你使用的时候Codegen.司法-项目选项,这些限制适用:

  • 出口CodeTemplate.A.参数Coder.embeddedCodeConfig不支持对象到项目文件。金宝app

  • 假设你的Codegen.用于生成MEX功能的命令编码器.Constant.定义恒定的输入是一个FI.(定点设计师)目的obj.

    肯定FI.对象属性由其他属性启用。当你建造一个FI.对象,除非您显式修改它们,否则这些属性将设置为其默认值。在obj.,您设置一个或多个未启用到非默认值的属性。看fi对象属性(定点设计师)

    你转换了这一点Codegen.使用使用的命令到项目文件-项目选项。您构建项目文件并生成MEX功能。当你通过时obj.作为生成的MEX函数的常量输入参数并运行MEX,MEX可能会抛出错误。

    要修复此问题,您必须设置属性obj.在将其传递给MEX函数之前,不会启用到其默认值。为此,定义一个新的FI.目的obj_new.

    a = mat2str(obj);obj_new = eval(a);

    经过obj_new.作为生成的MEX函数的常量输入。

也可以看看

相关话题