主要内容

转换codegen命令等效MATLAB编码器项目

您可以使用codegen命令-toproject选择转换codegen命令一个等价的MATLAB®编码器™项目文件。然后您可以使用另一个项目文件的生成代码codegen命令或MATLAB编码器应用程序。

例如,将一个codegen命令输入参数input_arguments项目文件myProject.prj运行:

codegeninput_arguments-toprojectmyProject.prj

输入参数codegen包括:

  • 的入口点函数的名字

  • 通过使用指定输入类型定义arg游戏选项

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

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

您还可以使用-toproject选择将一个不完整的codegen命令一个项目文件。例如,要创建一个项目文件myProjectTemplate.prj仅包含代码生成参数存储在配置对象cfg运行:

codegen配置cfg-toprojectmyProjectTemplate.prj
myProjectTemplate.prj不包含规格的入口点函数或输入类型。所以,你不能从这个项目文件生成代码。您可以打开myProjectTemplate.prjMATLAB编码器应用和使用它作为一个模板来创建完整的项目文件,您可以使用它们来生成代码。

请注意

运行codegen命令-toproject选项不生成代码。它创建项目文件。

例如:把一个完整的codegen命令一个项目文件

定义一个MATLAB函数,myadd,返回两个值的总和。

函数y = myadd (u, v)% # codegeny = u + v;结束

创建一个coder.CodeConfig对象生成一个静态库。集TargetLang“c++”

cfg = coder.config (“自由”);cfg。TargetLang =“c++”;

在MATLAB命令行,创建并运行一个codegen命令。指定myadd的入口点函数。指定输入myadd为适应矩阵的类型的尺寸是无界的。指定cfg作为配置对象的代码。包括-toproject选择转换codegen命令一个等价的MATLAB编码器项目文件名称myadd_project.prj

codegen配置cfgmyaddarg游戏{coder.typeof([正无穷,正无穷]),coder.typeof(1[正无穷,正无穷])}-toprojectmyadd_project.prj
项目文件的myadd_project。撮合下”是成功创建了。开放项目

代码生成器创建项目文件myadd_project.prj在当前工作目录中。运行codegen-toproject选项不生成代码。它创建项目文件。

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

codegenmyadd_project.prj

代码生成器生成一个c++静态库函数myadd工作\ codegen \ lib \ myadd文件夹,工作是你的当前工作目录。

例如:将一个不完整的codegen命令一个模板项目文件

创建一个coder.CodeConfig对象生成一个静态库。集TargetLang“c++”

cfg = coder.config (“自由”);cfg。TargetLang =“c++”;

在MATLAB命令行,创建并运行一个codegen命令。指定cfg作为配置对象的代码。包括-toproject选择转换codegen命令一个等价的MATLAB编码器项目文件名称myProjectTemplate.prj

codegen配置cfg-toprojectmyProjectTemplate.prj
项目文件的myProjectTemplate。撮合下”是成功创建了。开放项目

你现在可以打开myProjectTemplate.prjMATLAB编码器应用和使用它作为一个模板来创建完整的项目文件,您可以使用它们来生成代码。

限制

当你使用codegen命令-toproject选项,这些限制适用:

  • 导出CodeTemplate参数的coder.EmbeddedCodeConfig对象不支持一个项目文件。金宝app

  • 假设你的codegen命令生成一个墨西哥人函数使用coder.Constant这是一个定义一个常量输入fi(定点设计师)对象obj

    某些fi对象属性启用其他属性。当你构建一个fi对象,这些属性设置为默认值,除非你显式地修改它们。在obj,你设置一个或多个属性,不支持非默认值。看到fi设置对象属性(定点设计师)

    你把这个codegen通过使用命令一个项目文件-toproject选择。您构建项目文件,并生成一个墨西哥人的功能。当你通过obj作为常数输入参数生成的墨西哥人的功能和运行墨西哥人,墨西哥人可能会抛出一个错误。

    为了解决这个问题,您必须设置的属性obj不启用前为其默认值传递到墨西哥人功能。为此,定义一个新的fi对象obj_new:

    一个= mat2str (obj);obj_new = eval ();

    通过obj_new作为常数输入生成的墨西哥人的功能。

另请参阅

相关的话题